2

我有一个类似于下面的数据集:

ID    Name    Data1   Data2
1     MM      X       1000
2     ST      Y       1000
3     EC      Z       1000
4     JT      T       1000

我通过绑定DataSet. 我想做的是根据所有数据是否相似来设置列的可见性。DataGridViewDataSetData2

所以在上面的例子中,我想隐藏Data2列,因为表示的数据对DataSet. 但是,如果任何元素都有该列的唯一条目,我希望该列可见。

有没有办法在不迭代的情况下做到这一点DataSet?我不喜欢迭代,因为我DataSet的 s 非常大,我想对多个列执行此检查。

4

2 回答 2

1

您可以使用一些 LINQ 来检查您在该列中有多少不同的值:

if(dataTable.AsEnumerable().Select(row => row["Data2"]).Distinct().Count() > 1)
{
    // Make column invisible
}

如果有超过 1 个不同的值,那么您知道并非所有值都相等。

于 2012-08-01T15:16:25.580 回答
0
var areSame = dt.Rows.Count > 0 && 
              dt.AsEnumerable().All(x => dt.rows[0]["Data2"].Equlas(x["Data2"]));
于 2012-08-01T15:35:33.187 回答