linq 如何按照一个数组的序列将对象列表进行排序
可以使用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方法将排序后的结果转换为一个新的列表。
原文地址: https://www.cveoy.top/t/topic/fHRE 著作权归作者所有。请勿转载和采集!