var PidList = from r in datalist//数据来源
group r by r.PId into g
select new
{
Id = g.Min(p => p.Id)//取最小值
};
List<xxxx> temp=new List<xxxx>
foreach (var item in PidList)
{
temp.Add(datalist.FirstOrDefault(a => a.Id == item.Id));
}
使用group by 查询指定的数据 比如在上述例子中:查询 datalist 中的 PId 字段。把PId这个字段放进一个新的组 g 里面,如果有重复,取对应的最小 Id (主键)
返回单条数据,因为数据 datalist 是一个 List ,要另一个 List 接收
原文:http://www.cnblogs.com/Lbox/p/7944144.html