leo*_*ora 1 c# linq collections
我有一个字符串列表.它是在别处生成的,但我将在下面生成它来帮助描述这个简化的例子
var list = new List<string>();
list.Add("Joe");
list.Add("");
list.Add("Bill");
list.Add("Bill");
list.Add("");
list.Add("Scott");
list.Add("Joe");
list.Add("");
list.Add("");
list = TrimList(list);
Run Code Online (Sandbox Code Playgroud)
我想要一个函数,"trims"这个列表和修饰我想删除数组末尾的所有项目是空字符串(在这种情况下是最后两个).
注意:我仍然希望保留空白的数组,这是数组中的第二项(或任何其他不在最后的项目)所以我不能做.Where(r=> String.isNullOrEmpty(r))
Jon*_*eet 10
我会写它没有任何LINQ,说实话 - 毕竟,你正在修改一个集合,而不仅仅是查询它:
void TrimList(List<string> list)
{
int lastNonEmpty = list.FindLastIndex(x => !string.IsNullOrEmpty(x));
int firstToRemove = lastNonEmpty + 1;
list.RemoveRange(firstToRemove, list.Count - firstToRemove);
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想要创建一个新的列表,那么基于LINQ的解决方案是可以的......虽然可能有点低效(因为Reverse必须缓冲一切).
| 归档时间: |
|
| 查看次数: |
170 次 |
| 最近记录: |