我有一个像这样设计的数据表(组)
我基本上想从columna中选择它是X并从ColumnB获取消息
这就是我所拥有的
var names = (from DataRow dr in Groups.Rows
orderby (string)dr["ColumnB"]
select (string)dr["ColumnB"]).Distinct();
这会让我与众不同,但它给了我紫色,我不想要紫色。
谢谢!
答案 0 :(得分:8)
var names = (from DataRow dr in Groups.Rows
where dr["ColumnA"] == "X"
orderby (string)dr["ColumnB"]
select (string)dr["ColumnB"]).Distinct();
答案 1 :(得分:3)
DataTable dt2 = dt1.Select("ColumnA = 'X'").CopyToDataTable().DefaultView.ToTable(true, "ColumnB");
所以这里我们只选择你想要的数据行,只选择columnA为X的行。然后我们只选择查看columnB,但只选择唯一值。按此顺序执行,您将收到另一个数据表。它只包含1列columnB,它只有唯一/不同的值。
享受。
答案 2 :(得分:-1)
如果您的返回值有多个值,并且您希望仅使用其中一个值区分整个集合,则应使用自定义IEqualityComparer。
var names = (from DataRow dr in Groups.Rows
where (string)dr["ColumnA"] == "X"
orderby (string)dr["ColumnB"]
select new {
ColumnA = (string)dr["ColumnA"],
ColumnB = (string)dr["ColumnB"]
}).Distinct(new MyCustomEqualityComparer());
编辑以包含where子句
edit2:已更改为自定义IEqualityComparer