通过DataRows在C#linq查询中返回正确的类型

时间:2011-01-21 14:18:30

标签: c# linq

我似乎无法完成以下工作

var results = (from DataRow row in myDataView.Table.Rows
                    group row by row["part"] into x
                    select new {x}).Distinct();

foreach(var x in results)
 {
 doSomething(x["part"]);
 doSomethingElse(x["field2"]);
 }

问题似乎是结果包含“AnonymousType”的元素,我猜这是“组”的工件。如何使上述代码按预期工作?

1 个答案:

答案 0 :(得分:2)

new {x}

这将创建一个带有属性'x'的anonimous类型,其中将存储x对象。这是以下语法的简短语法:

new {x = x} // first x is property name

在您的情况下,您应该只选择x:

var results = (from DataRow row in myDataView.Table.Rows
                    group row by row["part"] into x
                    select x).Distinct();

在Group看起来很奇怪之后也是Distinct()。你的意思是什么?