我的数据集 ds 包含两个字段, AllowInput int 和 TypeName 字符串。
我想将所有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());
这很有效。 但是代码需要这么冗长吗?
答案 0 :(得分:2)
您可以删除以下两行:
ToArray().
Cast<DataRow>().
答案 1 :(得分:1)
您还可以考虑使用Linq to DataSet中定义的DataRow extensions
类似的东西:
string keys = string.Join(",", from row in table.AsEnumerable()
where (row.Field<int>("AllowInput") == 1)
select row.Field<string>("TypeName"));