私のプログラムには私のカスタムクラスでいっぱいのリスト<があります。私は単純に整数を指定し、その整数に設定された整数プロパティを持つすべてのオブジェクトを返すことで、リストからオブジェクトを抽出できるようにしたいと考えています。私はこのようにすることを考えていた:整数フィールドに基づいてList <>の項目を取得するにはどうすればよいですか?
int exampleint = 5;
List<MyClass> extract = new List<MyClass>();
for(int i = 0; i < list.Length; i++) {
if(list[i].Number == exampleint)
extract.Add(list[i]);
}
return extract;
これを行うにはどのような方法がありますか?ただ疑問に思う。
更新:Chris、あなたの答えはちょっとだった。この:
List<MyClass> extract = list.FindAll(new Predicate<MyClass>(delegate(MyClass obj) { return obj.Number == exampleint; }));
あなたの最初の例は私にエラーを与えた:
List<MyClass> extract = list.FindAll(delegate(int obj) { return obj.Number == exampleint; });
は、実際には、このする必要があります。しかし、正しい方向に私を指摘してくれてありがとう、それは今働くようです。
このプロジェクトでLinqを使用できますか? –
うれしい私は助けることができます。それは私が1年以上問題なく提案した方法を使ってコンパイルしているので、奇妙です。ちょうどそれをVisual Studioで実行し、それは文句を言っていませんでした。さて、ReSharperは私にラムダに変換するよう訴えていますが、デリゲート版でうまくコンパイルします。 –
私が自分で実現したエラーの1つは、「obj.Number」部分です。 Int32にはNumberという名前のメンバはありません。コンフィギュレータが私のコメントに対する応答でそれを指摘した。 – Bevin