我有一个类对象列表ListUser。我需要能够传入一个字符串值,并使用文本表达式按该列按升序或降序排列。我所看到的所有使用 Lambda 表达式的东西都将对象属性作为强类型值,如何通过添加“名字降序”作为参数来实现这一点?
代码如下
namespace SortLists
{
class ListUser
{
public int id { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string company { get; set; }
public string phonenumber { get; set; }
}
class Program
{
static void Main(string[] args)
{
var user1 = new ListUser() { id = 1, firstname = "James", lastname = "Smith", company = "Code Logic", phonenumber = "01235 566 456" };
var user2 = new ListUser() { id = 1, firstname = "Chris", lastname = "Andrews", company = "Adobe", phonenumber = "01235 566 456" };
var user3 = new ListUser() { id = 1, firstname = "Paul", lastname = "Jones", company = "Microsoft", phonenumber = "01235 566 456" };
var user4 = new ListUser() { id = 1, firstname = "Peter", lastname = "Williams", company = "Apple", phonenumber = "01235 566 456" };
List<ListUser> users = new List<ListUser>()
{
user1, user2, user3, user4
};
}
}
Run Code Online (Sandbox Code Playgroud)
添加对 nuget 包的引用:
https ://www.nuget.org/packages/System.Linq.Dynamic/
using System.Linq.Dynamic;在顶部。var usersSorted = users.AsQueryable().OrderBy("firstname ASC").ToList();