繁体   English   中英

使用linq从网格中的列中获得不同的值

[英]distinct value from a column in a grid using linq

我正在使用以下查询从数据集列中查找不同的值计数。 如何类似于网格列查找。

var distinctRows = (from DataRow dRow in _ds.Tables[0].Rows
                    select dRow["colName"]).Distinct();

好的..我仍然不确定为什么不重复查询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();

当然,这假定每列一个单元格,这可能是错误的(或至少是错误的)假设。

UPDATE刚看到这似乎无法将Linq与ASP.Net导航菜单结合使用(由Jon Skeet回答),并认为它可能适用于此处的问题。

var distinctRows = (from GridViewRow r in gv1.Rows
                    select r.Cells[0].Text).Distinct();

根据乔恩的回答,要在这种情况下使用LINQ,您需要通过显式指定该项,将其Cast为IEnumerable(因为我愿意打赌GridViewRowsCollection没有实现IEnumerable)。

您的网格可能已绑定到数据源,在这种情况下,对数据源使用linq查询比使用网格本身更有意义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM