1

我有一个班级说名为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());
}

有什么建议么?

4

2 回答 2

9

通过使用MoreLinq,您可以Distinct与 lambda 一起使用:

fullSubjectList.DistinctBy(x => x.Name).ToList();
于 2013-03-21T04:59:23.490 回答
2

按名称使用 linq 和组。那会给你与众不同的。看看这个答案以获得一些想法:LINQ:不同的值

于 2013-03-21T05:01:20.513 回答