Ata*_*600 5 linq vb.net iteration anonymous-types
好的,大家好,我一定在这里错过了一些东西。
我在VB.NET匿名类型中看到的每个LINQ示例都声称我可以做这样的事情:
Dim Info As EnumerableRowCollection = pDataSet.Tables(0).AsEnumerable
Dim Infos = From a In Info _
            Select New With {
                             .Prop1 = a("Prop1"), 
                             .Prop2 = a("Prop2"), 
                             .Prop3 = a("Prop3") }
现在,当我遍历集合时(请参见下面的示例),我得到一个错误,指出未声明“名称“ x”。
For Each x in Infos
 ...
Next 
就像VB.NET无法理解,Infos是LINQ创建的匿名类型的集合,要我声明“ x”作为某种类型。(这是否会违背匿名类型的目的?)我已将对System.Data.Linq和System.Data.DataSetExtensions的引用添加到我的项目中。这是我在课堂上要导入的内容:
Imports System.Linq
Imports System.Linq.Enumerable
Imports System.Linq.Queryable
Imports System.Data.Linq
有任何想法吗?
Prolly 没有帮助,但这对我在 2008 年和 2010 年有用,也许你需要 OptionInfer?
 _people.Add(New Person With {.Name = "P1", .Age = 1, .BDay = Now})
        _people.Add(New Person With {.Name = "P2", .Age = 2, .BDay = Now})
        _people.Add(New Person With {.Name = "P3", .Age = 3, .BDay = Now})
        _people.Add(New Person With {.Name = "P4", .Age = 4, .BDay = Now})
        Dim infos = From x In _people _
                    Select New With {.anonName = x.Name, .anonAge = x.Age}
        For Each anon In infos
            Debug.Print("anonName=" + anon.anonName + " anonAge=" + anon.anonAge.ToString)
        Next
| 归档时间: | 
 | 
| 查看次数: | 3364 次 | 
| 最近记录: |