我正在玩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 中依赖于某些属性的列表最好的方法是什么?
class obj
{
int typeID; //10 types 0-9
string uniqueString; //this is unique
}
Run Code Online (Sandbox Code Playgroud)
假设有包含100个obj元素的列表,但只有10个唯一的typeID.
是否可以写一个LINQ查询从objs列表中返回10个唯一的int?
我有以下课程:
public class SupplierCategory : IEquatable<SupplierCategory>
{
public string Name { get; set; }
public string Parent { get; set; }
#region IEquatable<SupplierCategory> Members
public bool Equals(SupplierCategory other)
{
return this.Name == other.Name && this.Parent == other.Parent;
}
#endregion
}
public class CategoryPathComparer : IEqualityComparer<List<SupplierCategory>>
{
#region IEqualityComparer<List<SupplierCategory>> Members
public bool Equals(List<SupplierCategory> x, List<SupplierCategory> y)
{
return x.SequenceEqual(y);
}
public int GetHashCode(List<SupplierCategory> obj)
{
return obj.GetHashCode();
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
我正在使用以下linq查询:
CategoryPathComparer comparer = new CategoryPathComparer();
List<List<SupplierCategory>> categoryPaths = (from i …Run Code Online (Sandbox Code Playgroud) 这是我试图获得一个独特的项目列表...
var queryResults = PatientList.Distinct();
PatientList = queryResults.ToList<SelectListItem>();
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我在这里没有得到明确的清单.