从 List获取最大值
我有列表 List
,我的类型包含 Age
和 RandomID
现在我想从此列表中查找最大年龄。
最简单、最有效的方法是什么?
I have List List<MyType>
, my type contains Age
and RandomID
Now I want to find the maximum age from this list.
What is the simplest and most efficient way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
假设您可以访问 LINQ,并且
Age
是一个int
(您也可以尝试var maxAge
- 它更有可能编译):如果您还需要
RandomID
(或整个对象),快速解决方案是使用MaxBy
来自 更多LinqAssuming you have access to LINQ, and
Age
is anint
(you may also tryvar maxAge
- it is more likely to compile):If you also need the
RandomID
(or the whole object), a quick solution is to useMaxBy
from MoreLinq好的,所以如果您没有 LINQ,您可以对其进行硬编码:
或者您可以编写一个更通用的版本,可在许多列表类型中重用:
您可以将其用于:
或者您可以使用 LINQBridge :)
在每种情况下,您都可以通过简单调用
Math.Max
如果你愿意的话。例如:Okay, so if you don't have LINQ, you could hard-code it:
Or you could write a more general version, reusable across lots of list types:
You can use this with:
Or you could use LINQBridge :)
In each case, you can return the if block with a simple call to
Math.Max
if you want. For example:http://msdn.microsoft.com/en-us /library/system.linq.enumerable.max.aspx
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
最简单的方法是使用前面描述的 System.Linq
这也可以使用字典
Easiest way is to use System.Linq as previously described
This is also possible with a Dictionary
最简单的实际上只是
Age.Max()
,您不需要任何更多代码。Simplest is actually just
Age.Max()
, you don't need any more code.这样怎么样:
基本上让
Sort()
方法为您完成这项工作,而不是编写自己的方法。除非你不想对你的收藏进行排序。How about this way:
You basically let the
Sort()
method to do the job for you instead of writing your own method. Unless you don't want to sort your collection.