0

所以我正在构建一个 CSV 导入器工具,现在我有一个字典,其中包含用于数据网格视图中列的键值对以进行比较。

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

这具有价值,我想将它与我拥有的字典进行比较并返回密钥。

如果我必须使用 linq,我如何在不使用 Linq 的情况下做到这一点,我需要能够将密钥转换为如下字符串:

ID = "3";

4

1 回答 1

0

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

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

注意:如果您多次执行相同的任务,您应该使用另一个词典,其KeysValues您的第一个词典,其ValuesKeys您的第一个词典,如下所示:

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();
  //...
}
于 2013-11-11T17:29:04.393 回答