是否有更好的编写方法,使用 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/