簡體   English   中英

Linq查詢OrderBy Multiple

[英]Linq Query OrderBy Multiple

我有一個List<Employees>集合,我試圖選擇Active員工。

我一定做錯了,因為我在這里看到很多例子表明我可以做到這一點,但Visual Studio告訴我我不能,因為:

無法將類型'System.Linq.IOrderedEnumerable'隱式轉換為'System.Collections.Generic.List'。 存在顯式轉換(您是否錯過了演員?)

這張照片出了什么問題? LastNameFirstName (您可能懷疑)都是String值,而Active是布爾值。

范圍變量

DataGridView1.DataSource = null;
List<AcpEmployee> emps = from e in employeeInfo.Employees
                         where e.Active 
                         orderby e.LastName, e.FirstName descending
                         select e;

您應該在查詢結尾處使用ToList

List<AcpEmployee> emps = (  from e in employeeInfo.Employees
                            where e.Active
                            orderby e.Active orderby e.LastName, e.FirstName descending
                            select e).ToList();

或直接使用方法:

List<AcpEmployee> emps = employeeInfo.Employees
    .Where(e => e.Active)
    .OrderBy(e => e.LastName)
    .ThenByDescending(e => e.FirstName)
    .ToList();

如果要將結果作為列表,只需將ToList()附加到查詢中即可。 或者簡單地將var emps聲明為var emps ,其類型為IOrderedEnumerable

這已在此處得到解答 ,只需在linq中使用orderby關鍵字

var emps = from e in employeeInfo.Employees 
            where e.Active orderby e.LastName thenby e.FirstName select e;

暫無
暫無

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

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