错误声明或变量范围

时间:2014-01-21 14:26:56

标签: vb.net linq range declaration

我是vb.net的初学者,最近,我写了这个查询: 我不认为这可以解释你我的程序的目标很重要(如果是,请不要犹豫告诉我。) 我有两个问题:req1和req2

For i = 0 To My_List.Count - 2

    For j = i + 1 To My_List.Count - 1

        Dim req1 = From Row1 In list_Rows Where Row1.C1.Equals(My_List(i)) Select Row1
        Dim A As Integer = 0

        For Each r In req1

            Dim req2 = From Row2 In list_Rows Where (Row2.C1.Equals(My_List(j)) AndAlso Row2.C2.Equals(Row1.C2)) Select Row2
            A += req2.count

        Next r


    'process....

    Next

Next

正如您在下面的代码中看到的,在req1的末尾,我得到“Row1”。 我想在第二个req2查询中使用Row1。 但是我有以下错误消息: “名称'Row1'未声明或不在当前范围内。”

我该如何解决这个问题?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您的问题很难理解,但我怀疑您只需要使用r(当前迭代中的行)而不是Row1。名称Row1在查询表达式本身中只具有任何含义。所以试试这个:

Dim req2 = From Row2 In list_Rows Where (Row2.C1.Equals(My_List(j)) AndAlso 
                                         Row2.C2.Equals(r.C2)) Select Row2

(我很确定会有更有效的方法来实现这一点,不可否认......你应该考虑加入。但是,这至少会让你向前迈进一步。)