Linq 不熟悉,请教大家一个linq问题
有数据集 List<photo> listPhoto
Photo类 定义如下:
UserId --用户编号
UserName --用户姓名
PhotoPath --图片路径
....
等
现在 listPhoto 中有 5000多条数据,请问如何用Linq查出所有照片所有者唯一用户的编号和姓名。
[解决办法]
private class PhotoComparer : IEqualityComparer<Photo>
{
public bool Equals(Photo x, Photo y)
{
return x.UserId == y.UserId && x.UserName == y.UserName ;
}
public int GetHashCode(Photo obj)
{
if (obj == null)
{
return 0;
}
else
{
return obj.ToString().GetHashCode();
}
}
}
list = list.Distinct(new PhotoComparer ()).ToList(); <--这个就是了你要的唯一
[解决办法]
List<photo> listPhoto;
var query = from p in listPhoto
group p by p.UserId into g
where g.Count() == 1
select g;