从数组列表中删除数组

时间:2014-04-16 19:10:13

标签: c# list

我有一个xml文件,想要从中删除任何行。因此,我将xml文件的每一行分配到一个列表:

List<string[]> lines = new List<string[]>();
List<string> clmns = new List<string>();//each row is written to clmns
...
lines.Add(clmns.ToArray());

正如您所料,lines列表就像

{ "1", "2", ... },
{ "4", "5", ... },
...

假设我要删除包含&#34; 5&#34;的行(行中的数组)。我该怎么做?

我以为我可以使用lines.RemoveAt(1)删除数组。但是,我找不到找到保存搜索字符串的数组索引的方法。

3 个答案:

答案 0 :(得分:5)

你非常接近。数组只是一个对象,因此以下内容将起作用:

lines.Remove(lines.First(a => a.Contains("5")));

这将使用&#34; 5&#34;来获取集合中的第一个数组。并将数组对象返回Remove,然后删除它。

要删除所有这些内容:

lines.RemoveAll(a => a.Contains("5"));

答案 1 :(得分:3)

List.FindIndex方法可以帮助您。

int index = lines.FindIndex(x=> x.Contains("5"));
if(index >= 0)
{
   lines.RemoveAt(index);
}

答案 2 :(得分:1)

您需要循环到数组列表并手动删除它。假设您只想删除第一个“5”。

foreach(var line in lines)
{
 if(line.Contains("5"))
 {
  lines.Remove(line);
  break;
 }
}