gpt4 book ai didi

c# - 将Vb.Net Linq转换为C#但出现明显错误

转载 作者:行者123 更新时间:2023-12-02 10:44:37 25 4
gpt4 key购买 nike

我正在尝试将我的一些代码从vb.net移到C#类库。我在vb.net中的linq查询正在针对DataTable查询。

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中给我一个错误

Error 1 'System.Data.EnumerableRowCollection' does not contain a definition for 'Distinct' and no extension method 'Distinct' accepting a first argument of type 'System.Data.EnumerableRowCollection' could be found



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

最佳答案

我能够复制/粘贴您的代码(并设置一个小的DataTable),并且工作正常。
Distinct扩展方法位于System.Linq命名空间中。

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

using System.Linq;

关于c# - 将Vb.Net Linq转换为C#但出现明显错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21769114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com