我正在玩LINQ来了解它,但是当我没有一个简单的列表时,我无法弄清楚如何使用Distinct(一个简单的整数列表很容易做到,这不是问题).我想在对象的一个或多个属性上使用对象列表中的区别?
示例:如果对象是Person,则使用Property Id.如何获取所有Person并使用对象Distinct的属性Id?
Person1: Id=1, Name="Test1"
Person2: Id=1, Name="Test1"
Person3: Id=2, Name="Test2"
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到Person1和Person3?那可能吗?
如果LINQ不可能,那么Person在.NET 3.5 中依赖于某些属性的列表最好的方法是什么?
为什么var excludes = users.Except(matches);不排除matches?
如果我希望相等比较器只使用ID?,那么正确的方法是什么?例子将不胜感激.
public class User
{
public int ID { get; set; }
public string Name { get; set; }
public override string ToString()
{
return ID.ToString() + ":" + Name;
}
}
private static void LinqTest2()
{
IEnumerable<User> users = new List<User>
{
new User {ID = 1, Name = "Jack"},
new User {ID = 2, Name = "Tom"},
new User {ID = 3, Name = "Jim"},
new User {ID …Run Code Online (Sandbox Code Playgroud)