【问题标题】:Find Distinct elements from a List C#从列表 C# 中查找不同的元素
【发布时间】:2013-03-10 12:10:34
【问题描述】:

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

有什么建议吗?

【问题讨论】:

    标签: c# list distinct-values


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

    • +1。请注意,来自MoreLinqDistinctBy 会更有效率。从该链接查看源代码中的 cmets。
    • 有趣。我不知道那个图书馆。
    猜你喜欢
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2011-01-07
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多