从数组列表中删除数组

本文关键字:数组 删除 列表 | 更新日期: 2023-09-27 17:58:36

我有一个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", ... },
...

假设我想删除包含"5"的行(行中的数组(。我该怎么做?

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

从数组列表中删除数组

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

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

这将获取集合中第一个带有"5"的数组,并将数组对象返回到Remove然后删除它。

要删除所有这些:

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

List.FindIndex方法可以在这里为您提供帮助。

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

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

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