【发布时间】:2014-02-14 01:21:09
【问题描述】:
我正在尝试将我的一些代码从 vb.net 移至 c# 类库。我在 vb.net 中有针对 DataTable 进行查询的 linq 查询。
Dim qryUser = From db In dt.AsEnumerable() _
Select userName = db.Field(Of String)("UserName") Distinct
Order By userName Ascending
现在我正在尝试在 C# 中完成这项工作,我已经
IEnumerable<string> qryUser = (from db in Table.AsEnumerable()
orderby db.Field<string>("UserName") ascending
select db.Field<string>("UserName"));
现在我找到的所有示例都显示了我应该只需要添加
.Distinct()
到我的 c# linq 查询的末尾,使其看起来像这样
IEnumerable<string> qryUser = (from db in Table.AsEnumerable()
orderby db.Field<string>("UserName") ascending
select db.Field<string>("UserName")).Distinct()
但是这样做会给我的 IDE 带来错误
错误 1 'System.Data.EnumerableRowCollection' 不包含 'Distinct' 的定义并且没有扩展方法 'Distinct' 接受类型的第一个参数 'System.Data.EnumerableRowCollection' 可以找到
有人可以告诉我这样做的正确方法吗?提前致谢。
【问题讨论】:
-
您能否在VB中省略的C#代码中添加
userName =部分?
标签: c# vb.net linq compiler-errors distinct