如何从数据表中提取过滤后的数据并创建字符串

发布于 2024-10-01 08:27:37 字数 539 浏览 1 评论 0原文

我有一个包含两个字段的数据集 dsAllowInput intTypeName string
我想将所有 TypeName 作为逗号分隔的字符串,其中AllowInput == 1

这是我到目前为止所做的。

string keys = string.Join(",", ds.Tables[0].Rows.Cast<DataRow>().
                Where(x => x["AllowInput"].ToString() == "1").
                ToArray().
                Cast<DataRow>().
                Select(x => x["TypeName"].ToString()).
                ToArray());

这有效。 但代码有必要这么冗长吗?

I have a dataset ds with two fields, AllowInput int and TypeName string.
I wanna get all TypeName as a comma separated string where AllowInput == 1

This is what I have done so far.

string keys = string.Join(",", ds.Tables[0].Rows.Cast<DataRow>().
                Where(x => x["AllowInput"].ToString() == "1").
                ToArray().
                Cast<DataRow>().
                Select(x => x["TypeName"].ToString()).
                ToArray());

This works.
But does the code needs to be this verbose?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小红帽 2024-10-08 08:27:37

您可能可以删除以下两行:

            ToArray().
            Cast<DataRow>().

You can probably drop the following 2 lines:

            ToArray().
            Cast<DataRow>().
蓝梦月影 2024-10-08 08:27:37

您还可以考虑使用 Linq 中定义的 DataRow 扩展到数据集

类似:

string keys = string.Join(",", from row in table.AsEnumerable()
                               where (row.Field<int>("AllowInput") == 1)
                               select row.Field<string>("TypeName"));

You could also consider using the DataRow extensions defined in Linq to DataSet

Something like:

string keys = string.Join(",", from row in table.AsEnumerable()
                               where (row.Field<int>("AllowInput") == 1)
                               select row.Field<string>("TypeName"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文