2008-09-25 97 views
5

我有一个LinkedList,其中Entry有一个叫id的成员。我想从ID与搜索值匹配的列表中删除条目。什么是最好的方法来做到这一点?我不想使用Remove(),因为Entry.Equals会比较其他成员,而我只想匹配id。我希望能做这样的事情:如何从C#中的LinkedList中删除与给定条件匹配的元素?

entries.RemoveWhereTrue(e => e.id == searchId); 

编辑:有人可以重新为我打开这个问题吗?它不是重复的 - 它应该是重复的问题是关于List类的问题。 List.RemoveAll不起作用 - 这是List类的一部分。

+0

这里有一个答案,一个重复的问题 Slavo 2008-09-25 13:58:12

回答

3
list.Remove(list.First(e => e.id == searchId)); 
+1

看我的答案 - RemoveAll方法实际上接受谓词作为参数。 – Slavo 2008-09-25 14:23:46

+0

除LinkedList上没有RemoveAll方法。 – 2008-09-25 14:25:38

1

只需使用Where扩展方法。你会得到一个新的列表(IIRC)。

2

这里有一个简单的解决方案:

list.Remove(list.First((node) => node.id == searchId)); 
相关问题