2008-09-25 2 views
5

私はLinkedListを持っています。ここで、Entryにはidというメンバーがあります。 idが検索値と一致するリストからエントリを削除したい。これを行う最善の方法は何ですか? Entry.Equalsは他のメンバーと比較するので、Remove()を使用したくないので、idと一致させたいだけです。私はこのような何かをすることを望んでいます:C#のLinkedListから特定の条件に一致する要素を削除するにはどうすればよいですか?

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

編集:誰かが私のためにこの質問を再開できますか?それは重複ではありません - 重複すると思われる質問はListクラスに関するものです。 List.RemoveAllは動作しません。これはListクラスの一部です。

+0

はここで重複した質問 Slavo

答えて

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

私の答えを参照してください - RemoveAllメソッドは実際にパラメータとして述語を受け入れます。 – Slavo

+0

LinkedListにRemoveAllメソッドがありません。。 –

+1

この質問は、RemoveAllメソッドを持たないLinkedListに関するものです。 –

1

Where拡張メソッドを使用してください。あなたは新しいリスト(IIRC)を取得します。

2

ここでは簡単な解決策だ:

list.Remove(list.First((node) => node.id == searchId)); 
+0

自分で投票できないので、私の投票を取得します:) –