我得到了以下代码:
public class Collect
{
public string name{ get; set; }
public int id { get; set; }
public DateTime registerDate { get; set; }
}
public class ControllingMyList
{
public void prepareList()
{
List<Collect> list = new List<Collect>();
list= loadList();
//Rest of the opperations
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到我的loadList方法为我返回了许多重复的记录(id变量)我想通过ID只得到一条记录.
该Distinct()函数似乎是一个很好的解决方案,但如果我没记错的话,Distinct()过滤掉对象的所有成员只是因为与"registerDate"变量的第二个区别被认为是使其区别的标准,即使它具有相同的ID .
你有几个选择:
DistinctBy()MoreLinq项目中的扩展方法Distinct()接受自定义相等比较器的重载,并实现自定义比较器GroupBy( x=> x.id)然后获取每个组的第一项. var list= loadList();
list = list
.GroupBy(i => i.id)
.Select(g => g.First())
.ToList();
Run Code Online (Sandbox Code Playgroud)