【问题标题】:How get the max length value of an array? [closed]如何获得数组的最大长度值? [关闭]
【发布时间】:2014-06-19 19:41:28
【问题描述】:

我是 C# 的业余爱好者;我正在尝试将 VB.Net 的这个功能转换为 C#...

<EditorBrowsable(EditorBrowsableState.Always)> _
<Extension()> _
Public Function mc_GetMaxLengthValue(ByVal Values() As String) As String
    mc_GetMaxLengthValue = ""

    If Values.Count > 0 Then mc_GetMaxLengthValue = Values.OrderByDescending(Function(Value) Value.Length).First
End Function

我不知道如何转换OrderByDescending(Function(Value) Value.Length)

就功能而言,我想获得数组中的最大长度。例如:{“123456”、“123”、“1234”}。我想得到“123456”(最长的字符串)。

【问题讨论】:

  • 我强烈建议您阅读 C# 中的 LINQ 教程。它将以一种结构良好的方式回答这个问题以及更多很多。 (如果不出意外,请查看 MSDN 中 OrderByDescending 的示例代码。)
  • 到目前为止您尝试过什么,您尝试的解决方案遇到了什么问题?
  • 您是否尝试阅读文档? msdn.microsoft.com/en-us/library/…
  • @MiBol 但您的 vb 代码返回最长的字符串,而不是它的长度。这就是我问它的原因。你甚至不知道它的作用。如果是这样,答案将是Values.Max(x=&gt;x.Length)
  • @MiBol 为什么你需要一个你不知道是做什么的函数?

标签: c# arrays vb.net linq


【解决方案1】:
Values.OrderByDescending(o => o.Length).First()  //max value
list.Max(o => o.Length) //max length

【讨论】:

  • 代码正确。可能需要包括 System.Linq。然而,只是注意到你在寻找长度而不是价值。使用 Neolisk 的答案。
  • 您如何看待 Neolisk 的回答。你的代表是不够的。这是您的第二个帐户吗?
  • 他删除了他的回复。我修改了答案。
  • 我在 Neolisk 的回答中没有看到任何类似于 list.Max(o =&gt; o.Length) 的内容。
  • 如果我没记错的话,他做了一个 .Select(o => o.Length).Max()。本质上是一样的。我的更简洁。
猜你喜欢
  • 2021-09-04
  • 2015-05-07
  • 2015-12-15
  • 2012-04-12
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 2021-01-10
  • 2021-01-19
相关资源
最近更新 更多