可以使用OrderBy方法和IndexOf方法来实现按照一个数组的序列对对象列表进行排序。

假设有一个对象列表:

List<MyObject> list = new List<MyObject>();
list.Add(new MyObject() { Name = "B" });
list.Add(new MyObject() { Name = "A" });
list.Add(new MyObject() { Name = "C" });

有一个字符串数组,表示按照这个顺序排序:

string[] order = { "C", "A", "B" };

可以使用以下代码对对象列表进行排序:

list = list.OrderBy(x => Array.IndexOf(order, x.Name)).ToList();

这里的OrderBy方法接受一个lambda表达式,该表达式返回每个对象在order数组中的索引。然后ToList方法将排序后的结果转换为一个新的列表。

linq 如何按照一个数组的序列将对象列表进行排序

原文地址: https://www.cveoy.top/t/topic/fHRE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录