2016-05-09 2 views
3

こんにちは私はC#のリストでグループ化しようとしています。 これは見た目です。C#List Group Byここで

Name User  
Fred true  
Fred false 
Fred true  
Joe  true  
Joe  true  
Max  false 
Max  true  

結果:

enter image description here

これは私がC#でこれを行うことができますどのように、グループ化した後のように見えると思った方法ですか?

+2

あなたはまだ* *何かをしようとしたことがありますか?たとえば、名前でグループ化し、「真の」値と「偽の」値を別々に数えることができます。 –

答えて

6

あなたはその後、名前でグループや、ここのような述語でEnumerable.Countを使用することができます。

var result = list 
    .GroupBy(x => x.Name) 
    .Select(g => new 
    { 
     Name = g.Key, 
     True = g.Count(x => x.User == true), 
     False = g.Count(x => x.User == false) 
    }); 
+0

が真==、彼らの宿題をし、彼らが自分自身で最初 –

+0

のx => x.Userを何かを聞かせていないのx => x.User のx => x.Userでなければなりません== falseをX =>!Xでなければなりません。ユーザー –

+0

@GrayKing:何が利点ですか?この場合、読みやすく、プロパティ名にも対応しているので、 '== true'と' == false'が好きです。 OPが言及していない「ユーザー」が「ブール」プロパティであると推定していることも明確になっています。 –