簡體   English   中英

從列表C#中查找不同的元素

[英]Find Distinct elements from a List C#

我有一個班級叫Product

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

    public int ProductId{ get; set; }

}

我有一個具有相同Name但不同ProductId

我想從product.Name上的列表中獲得不同的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());
}

有什么建議么?

通過使用MoreLinq ,可以將Distinct與lambda結合使用:

fullSubjectList.DistinctBy(x => x.Name).ToList();

將linq與group by一起使用。 這將使您與眾不同。 看看這個答案有幾個想法: LINQ:不同的價值觀

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM