我正在尝试使用LINQ来创建Dictionary<string, List<CustomObject>>一个List<CustomObject>.我可以使用"var"来使用它,但我不想使用匿名类型.这就是我所拥有的
var x = (from CustomObject o in ListOfCustomObjects
group o by o.PropertyName into t
select t.ToList());
Run Code Online (Sandbox Code Playgroud)
我曾经尝试过使用Cast<>()LINQ库x,但是我遇到了编译问题,因为它是一个无效的强制转换.
好的,大家好,我一定在这里错过了一些东西。
我在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)
有任何想法吗?