繁体   English   中英

将Vb.Net Linq转换为C#但不同的错误

[英]Converting Vb.Net Linq to C# but Distinct Error

我试图将我的一些代码从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'的第一个参数可以找到

有人可以告诉我这样做的正确方法吗? 提前致谢。

我能够复制/粘贴您的代码(并设置一个小的DataTable ),它工作正常。

Distinct扩展方法位于System.Linq命名空间中。

确保以下using指令位于类文件的顶部:

using System.Linq;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM