使用 linq .Net 获取数组中的最大字符单词
嘿伙计们, 我有一个包含一些元素的数组,现在我想检查数组中最大的元素是哪个,那么 Linq 中的查询可能是什么...
请尽快回复。
hey guys,
i have an array which contains some elements, now i want to check which is the largest element in the array, so what could be the query in Linq...
Please reply as soon as possible.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
...“最长”将等于“四”。
首先,使用 OrderByDescending 对数组进行排序。结果是原始字符串的 IEnumerable,但顺序正确(在本例中按长度降序)。然后,使用现在的顺序 IEnumerable(实际上是 IOrderedEnumerable),获取第一项 - 这是最长的。
注意:我使用“FirstOrDefault”作为良好实践。您可以在这里只使用“First”。如果您不确定结果是否为 null,则应该使用 FirstOrDefault,它将返回第一个元素(如果存在),否则它将返回该 Type 的默认值。对于字符串,它将返回 null,对于 bool,它将返回 false,对于 int,它将返回 0,等等。在这种情况下,仅使用“First”是 100% 安全的,因为您知道字符串数组不为 null 。
...and "longest" will be equal to "four".
First, use OrderByDescending to sort the array. The result is an IEnumerable of the original strings but in the correct order (in this case descending by length). Then, using the now order IEnumerable (really an IOrderedEnumerable), take the first item - which is the longest.
Note: I use "FirstOrDefault" as good practice. You could have just used "First" here. If you are unsure whether or not your result will be null, you should use FirstOrDefault which will return the first element if it exists, otherwise it will return the default value of that Type. For a string it would return null, for a bool it would return false, for an int it would return 0, etc. In this case it is 100% safe to just use "First" instead since you know your string array is not null.
或者,如果您像我一样懒并且喜欢尽量减少打字,则可以使用 Max。 :)
Alternatively, you can just use Max if you are lazy like me and prefer to keep typing to a minimum. :)