none
C#語法如何轉成 VB.NET RRS feed

  • 問題

  •  

    請教各位先進:

    我使用的環境為 VB2008.NET

    近來正在學習 LINQ 語法

    但因原始的語法是以  C# 所撰寫

    其中有一段一直無法轉成  VB.NET

    故請教各位先進

    謝謝

     

    Code Snippet

    public void Linq12() {
        int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

        var numsInPlace = numbers.Select((num, index) => new {Num = num, InPlace = (num == index)});

        Console.WriteLine("Number: In-place?");
        foreach (var n in numsInPlace) {
            Console.WriteLine("{0}: {1}", n.Num, n.InPlace);
        }
    }

     

     

    2009年1月19日 上午 06:14

解答

  • 您可以參考下列語法作修改:

    Code Snippet

    Public Sub Linq12()

           Dim numbers() As Integer = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}

           Dim numsInPlace = numbers.Select(Function(num, index) New With {.Num = num, .InPlace = index})

     

           Console.WriteLine("Number: In-place?")

     

           For Each n In numsInPlace

               Console.WriteLine("{0}: {1}", n.Num, n.InPlace)

           Next

       End Sub

     

     

    2009年1月19日 上午 08:22
    版主

所有回覆

  • Code Snippet

     

    Public Sub Linq12()

        Dim numbers As Integer() = {5, 4, 1, 3, 9, 8, _

        6, 7, 2, 0}

       

        Dim numsInPlace = numbers.Select(Function(num, index) New Void())

       

        Console.WriteLine("Number: In-place?")

        For Each n In numsInPlace

            Console.WriteLine("{0}: {1}", n.Num, n.InPlace)

        Next

    End Sub

     

     

     

    2009年1月19日 上午 07:17
  • 謝謝你的協助

    請教

    我把這段程式碼貼到 VB2008 上

    在  Dim numsInPlace = numbers.[Select](Function(num, index) New Void())  這段程式碼上出現

     

    多載解析失敗,因為具備這些引數的 'Select' 不存在,故無法呼叫

     

    不知我是那兒還需修改

     

    非常謝謝你的教導

     

     

     

    2009年1月19日 上午 08:20
  • 您可以參考下列語法作修改:

    Code Snippet

    Public Sub Linq12()

           Dim numbers() As Integer = {5, 4, 1, 3, 9, 8, 6, 7, 2, 0}

           Dim numsInPlace = numbers.Select(Function(num, index) New With {.Num = num, .InPlace = index})

     

           Console.WriteLine("Number: In-place?")

     

           For Each n In numsInPlace

               Console.WriteLine("{0}: {1}", n.Num, n.InPlace)

           Next

       End Sub

     

     

    2009年1月19日 上午 08:22
    版主
  • 非常感謝兩位的指導

    已可正常執行了

    我研究好久還一直無法理解下面這一段程式碼

    Dim numsInPlace = numbers.Select(Function(num, index) New With {.Num = num, .InPlace = index})

    但還是非常感謝兩位的協助

     

    2009年1月20日 上午 01:10
  • 詳細說明  請見

     

    Enumerable..::.Select<(Of <(TSource, TResult>)>) 方法 (IEnumerable<(Of <(TSource>)>), Func<(Of <(TSource, TResult>)>))
     
    2009年1月20日 上午 01:43