将DataGridViewCell的值与字典进行比较并返回密钥

时间:2013-11-11 16:04:58

标签: c# winforms

所以我正在构建一个CSV导入器工具,现在我有一个字典,它为数据网格视图中的列提供了一个键值对,用于比较。

 var events = row.Cells[2].Value; // class DataGridViewCell.Value

具有该值,我想将其与我所拥有的字典进行比较并返回密钥。

如何在不使用Linq的情况下执行此操作,如果必须使用linq,我需要能够将密钥转换为如下字符串:

ID =“3”;

1 个答案:

答案 0 :(得分:0)

您应该使用LINQ,试试这个:

var x = yourDictionary.FirstOrDefault(entry=>object.Equals(entry.Value,events));
if(!x.Equals(default(KeyValuePair<long,string>))) { 
  var id = x.Key.ToString();
  //...
}

注意:如果您多次执行相同的任务,则应使用另一个词典,其Keys是您第一个词典的Values且其Values是你的第一个词典的Keys,如下所示:

var inverseDictionary = yourDictionary.Select(key=>key.Value, value=>value.Key)
                                      .ToDictionary();
//Then use it like this:
long x;
if(inverseDictionary.TryGetValue((string)events,out x)){
  var id = x.Value.ToString();
  //...
}