从列表中找到不同的元素C#

Bib*_*bin 1 c# list distinct-values

我有一个名为 Product

public class Product
{
    public string Name{ get; set; }

    public int ProductId{ get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我有一个产品列表,相同Name但不同ProductId.

我想从列表中获得不同的产品 product.Name

即如果列表是

var fullproductList = {
        Name: product,
        ProductId: 1
    }, {
        Name: product,
        ProductId: 2
    }, {
        Name: product,
        ProductId: 3
    };
Run Code Online (Sandbox Code Playgroud)

我想要任何一个上面的产品.

我想实现这一点而不像这样循环:

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());
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

gdo*_*ica 9

通过使用MoreLinq你可以使用Distinctlambda:

fullSubjectList.DistinctBy(x => x.Name).ToList();
Run Code Online (Sandbox Code Playgroud)