确定DataSet列是否包含完全相同的数据

时间:2012-08-01 15:11:19

标签: c#

我有一个类似于下面的DataSet:

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

我通过绑定DataSetDataGridView中显示此DataSet。我想要做的是根据所有数据是否相似来设置Data2列的可见性。

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

有没有办法在不迭代DataSet的情况下执行此操作?我不想迭代,因为我的DataSet非常大,我想对多列执行此检查。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

var areSame = dt.Rows.Count > 0 && 
              dt.AsEnumerable().All(x => dt.rows[0]["Data2"].Equlas(x["Data2"]));