-17

这是一本字典:

Dictionary<string, List<string>> Dic = new Dictionary<string, List<string>>();

我想做以下事情:当我单击一个按钮时,第一个字典 (Dic) 键及其值被复制到一个列表 ( List<string>) 中。再次单击,同样的事情发生了,但这次是下一个字典键和值。

4

2 回答 2

1

看起来您想List<string>根据字典 List 值中的所有字符串元素创建一个新元素。您可以使用SelectMany以下代码将其展平并获取列表:

Dictionary<string, List<string>> Dic = new Dictionary<string, List<string>>();
Dic.Add("1", new List<string>{"ABC","DEF","GHI"});
Dic.Add("2", new List<string>{"JKL","MNO","PQR"});
Dic.Add("3", new List<string>{"STU","VWX","YZ"});

List<string> strList = Dic.SelectMany(r => r.Value).ToList();

WherestrList将在单个列表中包含字典中的所有字符串项。

于 2012-09-07T07:22:09.410 回答
0

为什么不使用ToList方法?

Dictionary<string, int> dictionary = new Dictionary<string, int>();
dictionary["cat"] = 1;
dictionary["dog"] = 4;
dictionary["mouse"] = 2;
dictionary["rabbit"] = -1;

// Call ToList.
List<KeyValuePair<string, int>> list = dictionary.ToList();

// Loop over list.
foreach (KeyValuePair<string, int> pair in list)
{
    Console.WriteLine(pair.Key);
    Console.WriteLine("   {0}", pair.Value);
}
于 2012-09-07T06:53:54.593 回答