c# - 为字典中低于给定 "at"值的键中最高的键选择最高值

标签 c# .net algorithm

是否有更好的编写方法,使用 LINQ 而不是自定义方法。 排序字典不是一个选项。 我认为 Dictionary.Where(x => x.Key < at) 很好但是 .OrderBy(x => x.Key).Last() 会很慢,因为我只需要一个我浪费的值 用于订购的 CPU。

Dictionary.Where(x => x.Key < at).OrderBy(x => x.Key).Last().Value;

也许:

Dictionary[Dictionary.Where(x => x.Key < at).Max(x => x.Key)];

最佳答案

第二个选项不错。它首先找到最大的键,然后找到与之对应的值。 或者,您可以编写 MaxBy 方法。 或者只使用已经在 MoreLinq 中实现的那个: http://code.google.com/p/morelinq/

关于c# - 为字典中低于给定 "at"值的键中最高的键选择最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23629749/

相关文章:

c# - 使用 EntityFramework 6.1 清理 Sqlite 数据库

c# - 任何人都知道缺少枚举通用约束的良好解决方法?

c# - 我们可以从控制台应用程序重定向到 C# 中的 Web 应用程序吗?

c++ - 初始化指针数据结构的空间复杂度

string - MATLAB:字符串元胞数组之间的单词匹配

c# - 如何迭代不同长度的列表以找到所有排列?

c# - 仅当子元素具有特定数量的元素时才选择父元素

C# Crystal 报表问题和图表?

c# - Linq 和 Streamreader 获取行

c# - 我如何在这种情况下使用任务?