2017-01-30 6 views
3

Itemオブジェクト内にリストがあるリストがあります。組み込みのリストのFindを使用して、内部に特定のDataオブジェクトセットを持つItemを返すことはできますか? (擬ようなコード)のような列挙可能なプロパティに基づいてアイテムを検索する

何か:

users = List<Item>(new Item {name = "Bob, data = new List<Data>()}, new Item {name = "Bill", data = new List<Data>()}) 

users.Find(i => i.data.key == "foo" && i.data.value == "bar") 
+1

プロパティ 'データ'の種類は何ですか?あなたは '.key'と' .value'にアクセスしていますが、 'List 'にはそのようなプロパティはありません。 –

+0

あなたの質問は基本的には: "私は' List 'オブジェクトを持っています、私は' Find'メソッドを使用できますか?答え:「どうしてですか?」あなたの質問が*使用方法*であれば、それを言い換えてください。 –

+0

データクラスには、キーと値のプロパティがあります。 –

答えて

3

あなたは、LINQ-式の中LINQ式を使用することができます。例えば:

users.Find(i => i.data.Any(a => <your condition>))

3

FindList<T>のための具体的な方法であるが、IEnumerable<T>、すなわちFirstOrDefaultそれがSystem.Linq名前空間に含まれているのと同じ拡張メソッドを、持って、あなたはこのようにそれを使用することができます:

users.FirstOrDefault(i => i.data.key == "foo" && i.data.value == "bar") 

しかし、List<T>だけを使用している場合は、実際にあなたが選ぶ予定のものではありません。

関連する問題