Вы пытаетесь привести BindingSource к словарю.Вам нужно разыграть DataSource .
BindingSource. Я не думаю, что вы можете Cast из OrderedDictionary
в Dictionary<>
, но это было бы простовосстановить Dictionary<string, string>:
BindingSource bs = (BindingSource)listBox1.DataSource;
OrderedDictionary ord = (OrderedDictionary)bs.DataSource;
Dictionary<string, string> dict = new Dictionary<string, string>();
foreach (DictionaryEntry item in ord)
dict.Add(item.Key.ToString(), item.Value.ToString());
Если вы хотите версию LINQ, вы можете сделать:
BindingSource bs = (BindingSource)listBox1.DataSource;
OrderedDictionary ord = (OrderedDictionary)bs.DataSource;
var dict = ord.Cast<DictionaryEntry>().ToDictionary(d => d.Key, d => d.Value);