我有一个名为Product
public class Product
{
public string Name{ get; set; }
public int ProductId{ get; set; }
}
我有一个产品列表,其中包含相同的Name
但不同的ProductId
。
我希望从product.Name
即。如果列表是
var fullproductList = {
Name: product,
ProductId: 1
}, {
Name: product,
ProductId: 2
}, {
Name: product,
ProductId: 3
};
我想要任何一个上述产品。
我希望在没有这样循环的情况下实现这个目标:
List<Product> distinctProducts= new List<Product>();
var distictproductName=fullSubjectList.Select(x => x.Name).Distinct().ToList();
foreach (var item in distictproductName)
{
distinctProducts.Add(fullproductList.Where(x=>x.Name==item).FirstOrDefault());
}
有什么建议吗?
答案 0 :(得分:9)
使用MoreLinq
,您可以将Distinct
与lambda:
fullSubjectList.DistinctBy(x => x.Name).ToList();
答案 1 :(得分:2)
在名称上使用linq和group by。这将给你独特的。 请看一下这个答案的一些想法:LINQ: Distinct values