2011-04-16 5 views
1

私はLinqを学んでいます。 ジェネリックリストからデータを選択する方法がわかりません。どのように私はLinqでオブジェクトを取得することができますオブジェクトのプロパティ= xyz別のプロパティでグループ化

次の擬似コード例では、私は(同じデータに対して同じID)「タイプ」のリストを作成し、IDを選択し、「データ」によって新しいクラスにグループ化したい

List<MyClass> 

MyClass have: 
------------- 
string id 
string type 
string data 

example of instances (all of this contained in a List<MyClass> 

MyClass1 
-------- 
id = "a" 
type = "a" 
data = "someData1" 

MyClass2 
-------- 
id = "a" 
type = "b" 
data = "someData1" 

MyClass3 
-------- 
id = "b" 
type = "c" 
data = "someData2" 

MyClass4 
-------- 
id = "b" 
type = "b" 
data = "someData2" 

MyClass5 
-------- 
id = "a" 
type = "c" 
data = "someData1" 

私がもしわからないことを得るために、グループには良いアイデアですタイプは=「C」

MyNewClassX 
id = "a" 
types = {"a","b","c"} 
data = "someData1" 

MyNewClassY 
id = "b" 
types = {"c","z"} 
data = "someData2" 

以降...私は-for例 - MyNewclassesを取得したい:私のような何かを得るのが好き結果または私は使用する必要があります私が望むデータを選択する別のLinqクエリ。

答えて

2
var q1 = from m in list 
     group m by m.data into g 
     select new {g.First().id, types=g.Select(_=>_.type), data=g.Key}; 

//selects by type 
var q2 = from m in q1 
     where m.types.Contains("c") 
     select m; 
+0

ありがとうございます。 – FabianSilva

関連する問題