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