如何在C#LINQ查询中使用Distinct运算符

时间:2013-09-12 06:11:07

标签: c# linq

我想在c#中使用以下代码选择唯一的EventYear 它给出了重复的值。 我的表(EventMasters)结构为(EventYear (string), EventCode, EventDescription) 我想选择唯一或不同的EventYear

    public ActionResult EventYearsMenu()
    {
        var eventyears = storeDB.EventMasters.Distinct().ToList().OrderByDescending(c => c.EventYear== c.EventYear.Distinct());
        return PartialView(eventyears);
    }

5 个答案:

答案 0 :(得分:3)

  

我想选择唯一或不同的EventYear

不仅仅是:

var eventyears = storeDB.EventMasters
                        .Select(c => c.EventYear)
                        .Distinct()
                        .ToList();

答案 1 :(得分:0)

试试这个

var eventyears = from Data in storeDB.EventMasters
                         where (this == that) // Write your Logic
                         select Data;

        if (eventyears != null)
        {
            /// do your code,,.,,,
        }

答案 2 :(得分:0)

尝试以下

var eventyears = storeDB.EventMasters
                     .GroupBy(c=>c.EventYear)
                     .Select(items=>items.First())
                     .SelectMany(item->item)
                       .ToList()
                       .OrderByDescending(c => c.EventYear == c.EventYear.Distinct());

它将采用不同的项目(基于EventYear)。 (可以将具有相同EventYear的项目分类为相同,即使它们对某些其他属性具有不同的值)

答案 3 :(得分:0)

试试这个

var eventyears = storeDB.EventMasters.ToList()
                       .OrderByDescending(c => c.EventYear == c.EventYear).Distinct();

答案 4 :(得分:0)

您可以尝试使用此代码。

var eventyears = storeDB.EventMasters.Distinct(q => q.EventYear.).ToList().OrderByDescending(c => c.EventYear);

return PartialView(eventyears);