2011-04-04 18 views
0

ObservableCollectionでLINQを使用して各オブジェクトの値をグループ化しようとしています。物事をシンプルに保つために、MyObjectには、一つの特性を持っていると仮定します - そして、実際の名前でグループにそれらすべてをLINQ To Object - フィールドベースのグループ化方法

public List<string> UserNames; 

私は、コレクション内の各オブジェクトに対して、ユーザー名内のすべての文字列を返すLINQクエリを書きたいです。私は最終的な結果がそれぞれのユニークな名前とその名前がコレクションで見つけられた回数を表示することを望みます。

これはT-SQLでは簡単ですが、私はLinq to Objectsには何の不運もありません。

ありがとう、

答えて

0

どうやってですか?

var allUnique = myColl.SelectMany(x => x.UserNames).GroupBy(z=>z); 

foreach (var s in allUnique) 
{ 
    Console.WriteLine(s.Key.ToString() + " Count: " + s.Count().ToString()); 
} 
0
collection.SelectMany(myObj => myObj.UserNames) 
      .GroupBy(name => name) 
      .Select(g => new { Name = g.Key, Count = g.Count() }); 
関連する問題