我有一个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)
删除数组。但是,我找不到找到保存搜索字符串的数组索引的方法。
答案 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;
}
}