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

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

名前によるグループで linq を使用します。それはあなたに別のものを与えるでしょう。いくつかのアイデアについては、この回答を見てください: LINQ: Distinct values

于 2013-03-21T05:01:20.513 に答える