【问题标题】:Using Linq with VB.NET在 VB.NET 中使用 Linq
【发布时间】:2015-06-17 20:41:53
【问题描述】:

我很抱歉问了这么厚的问题。我需要使用 vb.net 对字符串中的字符进行排序。

我通常使用 C#。

这是我的代码:

Dim val1() As Char = txtInput.Text.Trim.ToArray
val1 = val1.OrderBy(c >= c).ToArray()

告诉我没有声明'c'。

我已经导入了这些:

Imports System.Collections.Generic
Imports System.Linq

请告诉我我做错了什么?

谢谢,

【问题讨论】:

  • 您仍在为您的 lambda 表达式使用 c# 语法。关于 vb 中 Lambda 表达式的详细信息,请参阅msdn.microsoft.com/en-us/library/bb531253.aspx
  • 嗨,我看到了一些差异。谢谢
  • 我现在实际上也将其添加为答案。我需要在发布之前检查我的 VB 是否正确,因为我不太使用 VB。 :)

标签: vb.net linq


【解决方案1】:

您仍在为您的 lambda 表达式使用 c# 语法。 vb 中 Lambda 表达式的详细信息请参见http://msdn.microsoft.com/en-us/library/bb531253.aspx

在你的情况下它很简单

val1 = val1.OrderBy(Function (c) c ).ToArray

【讨论】:

  • 没有问题。不过,我很想知道您为什么将另一个答案设为已接受的答案。
  • 嗨,错误。我想奖励最早的答案并将其误读为另一个答案。对不起
  • 啊。我不是想代表乞求,只是想弄清楚我是否应该做得更好。 :)
  • 没关系。这是我的错,应该得到奖励
【解决方案2】:

对字符串中的字符进行排序,结果为字符串:

    Dim s As String = txtInput.Text.Trim.OrderBy(Function(c) c).ToArray

如果你希望结果是一个字符数组:

    Dim val1() As Char = txtInput.Text.Trim.OrderBy(Function(c) c).ToArray

【讨论】:

    【解决方案3】:

    或者,您实际上并不需要 Linq 或 lambda 来执行此操作。您可以使用ToCharArray 并对该数组进行排序(就地):

    Dim chars = someString.ToCharArray
    Array.Sort(chars)
    

    【讨论】:

    • 嗨,谢谢。我想我可以但想知道如何在 linq 中做到这一点。谢谢
    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 2015-04-10
    • 2018-04-18
    相关资源
    最近更新 更多