所以我正在构建一个CSV导入器工具,现在我有一个字典,它为数据网格视图中的列提供了一个键值对,用于比较。
var events = row.Cells[2].Value; // class DataGridViewCell.Value
具有该值,我想将其与我所拥有的字典进行比较并返回密钥。
如何在不使用Linq的情况下执行此操作,如果必须使用linq,我需要能够将密钥转换为如下字符串:
ID =“3”;
答案 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();
//...
}