无法在选择linq方法中访问类的成员
本文关键字:访问 成员 方法 选择 linq | 更新日期: 2023-09-27 18:10:44
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; }
}
在var x我想通过它们的ID分组所有Foo对象,并在Value字段中获得SUM。
问题是,似乎我无法访问select方法中类的成员/字段。
谢谢
在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
将每个ID-group的所有名称集中,值求和。
试试这个
var x = t.GroupBy(gp => gp. name)。order (group => group. key)。选择(group => Tuple.Create(group))。键,group.Count ()));