如果我的数据是 List<Cat>
每只猫的年龄分别为 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
我想根据1-3、4-8、9-10的范围重新排序列表
结果列表将是
3, 2, 1, 8, 7, 6, 5, 4, 10, 9
我该怎么做?
我首先考虑创建三个查询:
var band1 = myList.Where(c => c <= 3);
var band2 = myList.Where(c => c => 4 && c <= 8);
var band3 = myList.Where(c => c >= 9);
但是我不知道如何使用 LINQ 合并结果,因为我有三个 IEnumerable<Cat>
.
正确的使用方法是什么,还是我必须使用 foreach
?
最佳答案
您可以使用 Concat .
var band1 = myList.Where(c => c <= 3);
var band2 = myList.Where(c => c => 4 && c <= 8);
var band3 = myList.Where(c => c >= 9);
var result = band1.Concat(band2).Concat(band3);
关于c# - 使用 LINQ 如何根据范围确定 IEnumerable 的优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15956716/