2015-09-01 24 views
0
static void Main(){ 

List<Foo> t = new List<Foo>{ 
      new Foo(){Id=1,Name="A",Value=1}, 
      new Foo(){Id=2,Name="B",Value=1}, 
      new Foo(){Id=3,Name="C",Value=1}, 
      new Foo(){Id=3,Name="D",Value=1}}; 

var x = t.GroupBy(gp => gp.Id).Select(sel => new Foo { Id = ,Name=,Value= }); 

} 

public class Foo{ 
    public string Name { get; set; } 
    public int Id { get; set; } 
    public int Value { get; set; } 
} 

變種X我希望將所有的富對象,並獲得在值字段的總和。無法通過自己的ID訪問類的成員在選擇LINQ方法

問題是,我似乎無法在select方法中訪問類的成員/字段。

感謝

+0

對ID進行分組讓我懷疑你實際上是在試圖解決除描述之外的其他問題。你需要完成什麼? – kai

回答

3

GroupBy後您不選擇IEnumerable<Foo>,但他們的羣體。你可能想:

var x = t.GroupBy(f => f.Id) 
    .Select(grp => new Foo { 
     Id = grp.Key, 
     Name = String.Join(",", grp.Select(f => f.Name)), 
     Value = grp.Sum(f => f.Value) 
    }); 

我使用String.Join到concenate每個ID組的所有名稱,值相加。

0

嘗試這樣

變種X = t.GroupBy(GP => gp.Name).OrderBy(組=> group.Key)。選擇(組=> Tuple.Create(group.Key,組。計數()));