从列表中删除项目 – 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
将执行您想要的操作。
你给它一个谓词委托类型,为每个项目执行,如where子句:
fieldRow.RemoveAll(item => item.Key == key);
但是,您可能需要考虑将数据存储在Dictionary
。 这样你就可以通过密钥直接访问字典/地图。 这样可以提高性能。
您可以找到需要删除的字段的索引,并在List上使用RemoveAt方法。
我将在一分钟内添加一个例子。 没关系,建议在谓词中使用RemoveAll似乎是一个更好的选择:-)