2016-09-28 147 views
0

正如話題所說:有沒有辦法從DataGridView的某個列返回不同值的列表?從DataGridView返回不同值的列表

+1

你不應該嘗試從視圖獲取值。相反,從模型中讀取它們。 – dasblinkenlight

+0

是的,但我可能更多地使用視圖而不是數據源。 –

+0

我想這個鏈接是給你的:http://stackoverflow.com/questions/10899568/count-distinct-values-of-a-column-in-datagridview-using-linq-in-net – praguan

回答

3

這應該做你的要求爲:

var vv = dataGridView1.Rows.Cast<DataGridViewRow>() 
          .Select(x => x.Cells[yourColumn].Value.ToString()) 
          .Distinct() 
          .ToList(); 

注意上面這個簡單的版本假定有唯一有效的值。如果你也可能有新的行或空單元格,你可能想這樣擴展它:

var vv = dataGridView1.Rows.Cast<DataGridViewRow>() 
          .Where(x => !x.IsNewRow)     // either.. 
          .Where(x => x.Cells[column].Value != null) //..or or both 
          .Select(x => x.Cells[column].Value.ToString()) 
          .Distinct() 
          .ToList(); 
+0

是否有可能使這是一個「oneliner」?喜歡將這些值直接存儲到列表中? –

+0

???這確實是一個班輪,它確實創建了一個列表。爲了更好的可讀性,我只插入了換行符。 – TaW

+0

噢..我缺乏知識令人不安...因爲我自己學習了c#,所以我沒有確認這個變量是否可用作數據源。 –