简体   繁体   English

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

[英]How can I use Distinct operator in C# LINQ query

I would like to select unique EventYear using following code in c# Its giving duplicate values. 我想使用c#中的以下代码选择唯一的EventYear,它给出重复的值。 my table (EventMasters) structure is (EventYear (string), EventCode, EventDescription) I want to select unique or distinct 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);
    }

I want to select unique or distinct EventYear 我想选择唯一或不同的EventYear

Isn't it just: 不只是:

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

Try like this 这样尝试

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

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

Try following 尝试跟随

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

it will take distinct items (based on EventYear). 它将采用不同的项目(基于EventYear)。 (it is possible to have items with same EventYear classified as same, even though they have different values for some other properties) (即使EventYear相同的项目在某些其他属性上具有不同的值,也可能将其归类为相同的项目)

Try this 尝试这个

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

You can try this code. 您可以尝试此代码。

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

return PartialView(eventyears);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM