首页 > 解决方案 > 为什么这行代码对 string[] 做一些事情会返回 bool?

问题描述

tableLR = txt
    .Split("Sat.")[i + 1]
    .Split("  ")
    .ToList()
    .Remove(txt
        .Split("Sat.")[i + 1]
        .Split("  ")
        .ToList()[txt.Split("Sat.")[i + 1].Split("  ").ToList().Count() - 1]);

设置的变量是List<string> tableLR

正在处理的变量是string txt

好的,List<T>.Remove()返回布尔值。但是,我应该如何将tableLR'txt.Split("Sat.")[i + 1].Split(" ").ToList()' 设置为 'txt.Split("Sat.") 中的最后一项。 ")[i + 1].Split(" ").ToList()' 删除了吗?

标签: c#string

解决方案


让我们重新格式化:

int num = txt.Split("Sat.")[i + 1].Split("  ").ToList().Count() - 1; // n is list length - 1
string s = txt.Split("Sat.")[i + 1].Split("  ").ToList()[num]; // return item in list
bool result = txt.Split("Sat.")[i + 1].Split("  ").ToList().Remove(s); // remove item from list

删除返回布尔值(文档: https ://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.remove?view=netcore-3.1 )

正如您从上面的代码中看到的那样,它总是正确的。

要回答您的后续问题:

tableLR = txt.Split("Sat.")[i + 1].Split("  ").ToList();
tableLR.RemoveAt(tableLR.Count - 1);

推荐阅读