我有一个
List<string[]> list which contains this data:
SEC Code (list[0][0])
Status (list[0][1])
ALL (list[1][0])
None (list[1][1])
数据是这样的:
SEC Code ALL
Status None
我想删除&#34; SEC Code&#34;和&#34;所有&#34;并将它们放在列表的末尾。我试过list.Remove,但它适用于
List<string> and not for List<string[]>.
答案 0 :(得分:1)
我尝试了
list.Remove
,但它适用于List<string>
,而不适用于List<string[]>
。
这是因为list.Remove
使用数组不覆盖的Equals(object)
来比较相等的项。为了使数组从Equals(object)
的角度看被认为等于另一个数组,它必须是相同的数组实例。
为了从内部数组中删除"SEC Code"
和"ALL"
,您需要构建一个缩短一个项目的新数组,如下所示:
var toRemove = new HashSet<string> {"SEC Code", "ALL"};
var newList = list.Select(array =>
array.Where(item => !toRemove.Contains(item)).ToArray()
).ToList();
上面的代码生成了一个字符串数组列表,其中删除了所有"SEC Code"
和"ALL"
字符串。