gpt4 book ai didi

c# - 使用 Linq 返回不同值查询数据表

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:35 25 4
gpt4 key购买 nike

我正在尝试从数据表列中获取不同的值。这是我的代码..

var sourceItems = ds.Tables[0].AsEnumerable()
.GroupBy(x => x.Field<string>("Source").ToString())
.Select(x => x.First());
ddlSource.DataSource = sourceItems;
ddlSource.DataBind();

此代码返回 4 行 System.Data.DataRow 作为值。我需要存储在行中的实际值而不是行类型。此外,此代码是否是仅获取列中不同值的正确方法?

最佳答案

我会做这样的事情:

var sourceItems = ds.Tables[0].AsEnumerable()
.Select(x => x.Field<string>("Source"))
.Distinct()
.ToList();

注意.ToList()可以跳过,当然这取决于ddlSource对象的DataSource属性是什么接受。如果它是一个 winforms 控件,我怀疑 ToList 是必要的。

您的代码与此代码基本相同,但您必须将最后一个 Select 更改为 Select(x => x.Key) 以选择需要的值用于对行进行分组,而不是对第一行进行分组。
此外,您的代码比使用 Distinct 的开销更大,因为 GroupBy 创建原始集合的子组。

关于c# - 使用 Linq 返回不同值查询数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9893821/

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