2

以下のような DataSet があります。

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
}

複数の異なる値がある場合、すべての値が等しいわけではないことがわかります。

于 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 に答える