有没有更好的方法来编写它,使用LINQ而不是自定义方法。 Sorted Dictionary不是一个选项。 我认为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)];
答案 0 :(得分:2)
Dictionary[Dictionary.Keys.Where(key=> key < at).Max()]
答案 1 :(得分:2)
第二种选择是好的。它首先找到max键,然后找到随之而来的Value。 或者,您可以编写MaxBy方法。 或者只使用已在MoreLinq中实现的那个: http://code.google.com/p/morelinq/