从列表中删除项目 – C#

我有一个复杂的数据结构。 简单版本如下所示:

public class Field { List fieldRow; //I want to write a delete that iterates and deletes given the key //(Use Linq?) public void DeleteByKey(int key) { //Do Remove } } public class FieldRow { public int key; } 

任何实现删除的帮助表示赞赏。

 public class Field { List fieldRow; public void DeleteByKey(int key) { fieldRow.RemoveAll(row => key == row.key); } } public class FieldRow { public int key; } 

List().RemoveAll()将执行您想要的操作。

你给它一个谓词委托类型,为每个项目执行,如where子句:

 fieldRow.RemoveAll(item => item.Key == key); 

但是,您可能需要考虑将数据存储在Dictionary 。 这样你就可以通过密钥直接访问字典/地图。 这样可以提高性能。

您可以找到需要删除的字段的索引,并在List上使用RemoveAt方法。

我将在一分钟内添加一个例子。 没关系,建议在谓词中使用RemoveAll似乎是一个更好的选择:-)