c# - 列出 OrderBy 值 < 值
问题描述
我得到了一个包含价格(最低、平均、最高)的类的列表。现在我想订购清单:
- 最低 < 平均 = 第一个条目 | 在那些按最低排序的条目之后的所有其他
- 最低<平均条目按最低和平均之间的最高差排序
例子:
(unordered: low,avg,high)
{1, 2, 5}
{4, 3, 7}
{2, 5, 6}
{2, 1, 3}
(ordered: low,avg,high)
{2, 5, 6} -> highest difference between low < avg
{1, 2, 5} -> low < avg
{2, 1, 3} -> lowest low while low > avg
{4, 3, 7} -> ...
这可能是一件很容易做到的事情,但是当我想到它时,我感到头疼。我尝试使用 .OrderBy 和 .GroupBy 但我无法让它工作。
解决方案
您可以使用
list.OrderByDescending(x => x.Average - x.Lowest).ThenBy(x => x.Lowest).ToList();
考虑到你的班级看起来像
public class price
{
int Lowest {get; set;}
int Average {get; set;}
int Highest {get; set;}
}
现在你想要按条件订购价格清单Average - Lowest
List<Price> prices = new List<Price>();
然后你可以按
var sortedList = prices.OrderByDescending(x => (x.Average - x.Lowest)).ThenBy(x => x.Lowest).ToList();
POC:.net 小提琴
推荐阅读
- javascript - React Native - 如何使用 StackNavigator 和 DrawerNavigator 管理每页的标题
- c# - 如何创建特定编号的 ListView。WPF 中的列数?
- javascript - 将图像拖放到angularjs的框中
- vba - 如何测试 pdf 是否已打开 - 使用 Excel 宏
- java - 将 ClickListener 分配给第二个布局中的按钮
- json - JSON解析在ruby中没有以相同的顺序转换
- ruby - 从 Ruby 列表中删除/删除备用号码
- c# - 从门户下载代码并在本地测试后,Bot 框架代码不起作用
- vba - 使用 VBA 从选择中选择重复的最大数
- python - 如何在 Python 中高效地计算矩阵乘积的稀疏值?