[英]Linq Query OrderBy Multiple
我有一個List<Employees>
集合,我試圖選擇Active
員工。
我一定做錯了,因為我在這里看到很多例子表明我可以做到這一點,但Visual Studio告訴我我不能,因為:
無法將類型'System.Linq.IOrderedEnumerable'隱式轉換為'System.Collections.Generic.List'。 存在顯式轉換(您是否錯過了演員?)
這張照片出了什么問題? LastName
和FirstName
(您可能懷疑)都是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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.