我有一个类似于下面的DataSet:
ID Name Data1 Data2
1 MM X 1000
2 ST Y 1000
3 EC Z 1000
4 JT T 1000
我通过绑定DataSet
在DataGridView
中显示此DataSet
。我想要做的是根据所有数据是否相似来设置Data2
列的可见性。
因此,在上面的示例中,我希望隐藏Data2
列,因为所表示的数据对DataSet
中的所有元素都是通用的。但是,如果任何元素具有该列的唯一条目,我希望该列可见。
有没有办法在不迭代DataSet
的情况下执行此操作?我不想迭代,因为我的DataSet
非常大,我想对多列执行此检查。
答案 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"]));