【发布时间】:2016-04-22 05:10:43
【问题描述】:
我有一个如下表:我需要将其显示为没有重复项。所以我需要单独对客户进行分组。 c1 有两个“名称”
Id Name customer
1 XXXX c1
2 YYYY c1
我需要获取 c1 上的值:xxx ,yyy。但它得到 c1: xxx 和 c1: yyy。
我的代码是:
public List<data> GetComponentStatus()
{
List<data> d= null;
using(var entity=new FM())
{
d = entity.getdata()
.Select(
a => new data
{
Customer = a.id,
Name = a.name,
})
.GroupBy(a=>a.Customer).Select(a=>a.FirstOrDefault()).ToList();
}
return d;
}
由此,我在使用 LastorDefault() 时获得了第一条记录或最后一条记录。
我想在单个客户 C1 上同时获得两个“名称”。
【问题讨论】:
-
Customer = a.id,应该是Customer = a.customer对于初学者。然后你需要在groupby之后选择:Select(g => new { Customer = g.Key, Names = g.Select(gg => gg.Name) }) -
省略 fistordefault().. 在 groupby 之后取 toList()