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") }
Run Code Online (Sandbox Code Playgroud)
现在,当我遍历集合时(请参见下面的示例),我得到一个错误,指出未声明“名称“ x”。
For Each x in Infos
...
Next
Run Code Online (Sandbox Code Playgroud)
就像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
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3364 次 |
最近记录: |