我使用以下查询从数据集列中查找不同的值计数。如何找到类似于网格列。
var distinctRows = (from DataRow dRow in _ds.Tables[0].Rows
select dRow["colName"]).Distinct();
答案 0 :(得分:1)
Ok ..我仍然不确定你为什么要这样做而不重新查询DataSource,但这里有一种可能指向正确方向的方法。 gv1是您GridView
的ID,出于演示目的,我将使用第一列:
string[] rowValues = new string[gv1.Rows.Count];
for (int i = 0; i < gv1.Rows.Count; i++)
{
rowValues[i] = gv1.Rows[i].Cells[0].Text;
}
var distinctRows = (from r in rowValues
select r).Distinct();
这当然假设它是每列一个单元格,这可能是假(或至少是坏的)假设。
<强>更新强> 刚看到Jon Skeet回答这个Can't seem to use Linq with ASP.Net Navigation menu,并认为它可能适用于这里的问题。
var distinctRows = (from GridViewRow r in gv1.Rows
select r.Cells[0].Text).Distinct();
由于Jon的回答,在这种情况下使用LINQ,你需要Cast
到IEnumerable(因为我愿意打赌GridViewRowsCollection没有实现IEnumerable)通过显式指定项目,如上所述。 / p>
答案 1 :(得分:0)
您的网格可能绑定到数据源,在这种情况下,对数据源而不是网格本身使用linq查询更有意义