簡體   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