2016-09-28 107 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#,所以我没有确认这个变量是否可用作数据源。 –