基于索引元素的Linq排序

本文关键字:元素 Linq 排序 索引 于索引 | 更新日期: 2023-09-27 18:19:14

我试图在数组索引的基础上排序查询。参见下面的代码-

query = data.Users;
query = query.Where(u=>u.IsActive);
query = query.OrderBy(u=>u.LName);
query = query.OrderBy(u=>u.Phone[0]);

一切正常,除了最后一行。它显示以下错误-

NotSupportedException was unhandled.
The expression [10007].Phone.get_Item(0) is not supported.

编辑

I have try -

query = query.OrderBy(u=>u.Phone.First());
query = query.OrderBy(u=>u.Phone.FirstOrDefault());

Phone是字符串数组

基于索引元素的Linq排序

我认为你需要使用ThenBy而不是第二个顺序:

query = data.Users;
query = query.Where(u=>u.IsActive);
query = query.OrderBy(u=>u.LName);
query = query.ThenBy(u=>u.Phone[0]);

否则,您将重新排序整个数组,而不是按您想要的两个字段排序。