.net C#按未知属性对集合排序

t0ybt7op  于 2023-01-18  发布在  .NET
关注(0)|答案(1)|浏览(113)

我怎样才能按未知的值的数目对对象列表进行排序?使用LINQ,它将是这样的:

var myNewCollection = myCollection.OrderBy(c => c.Id).ThenBy(c => c.Name).ThenBy(c => c.Years).ToList();

而且我有一个用户可以排序的11个属性的列表,当我不知道用户将选择多少字段时,我如何在这个示例中构建我的表达式呢?

watbbzwu

watbbzwu1#

添加块金包... System.Linq.Dynamic.Core
这是包含文档的站点... https://dynamic-linq.net/
你需要构建一个字符串,看起来像这样... Id ASC, Name DESC, Years ASC...按照文档,或者,直接排序,没有方向,例如Id, Name, Years。然后简单地调用OrderBy方法(https://dynamic-linq.net/basic-simple-query#ordering-results)...

var sortBy = "Id, Name, Years";

var result = DynamicQueryableExtensions.OrderBy(data.AsQueryable(), sortBy).ToList();

如果需要的话,您需要做一些花哨的工作,使用户看到的选择比字段名称更有用。

相关问题