1

-のようなものをいただけますか

Dictionary<string, string> dict = new Dictionary<string, string>();

List<string> keysList=  new List<string>();
List<string>valuesList=  new List<string>();

//Assuming both the list have the same number of items
dict.keys = keysList;
dict.values = valuesList;

ほとんどの場合、キーと値をリストに直接割り当てることでそれらを設定する方法があるかどうかを知りたいですか?

4

2 に答える 2

5

ほとんどの場合、キーと値をリストに直接割り当てることでそれらを設定する方法があるかどうかを知りたいですか?

いいえ。ただし、zip形式で圧縮してから使用してToDictionaryください。

var dict = keysList.Zip(valuesList, (key, value) => Tuple.Create(key, value))
                   .ToDictionary(pair => pair.Item1, pair => pair.Item2);
于 2012-05-09T20:19:06.517 に答える
1

辞書は、内部的にデータを 2 つのリストとして保存していません。データをハッシュ テーブルに格納します。つまり、各キーを取得し、そのハッシュを生成して、そのハッシュに対応する場所にアイテムを配置する必要があります。このため、アイテムのグループを追加する唯一の方法は、グループをループして各アイテムを追加することです。別の回答で述べたように、LINQToDictionaryメソッドを使用できますが、内部的には、各項目をループして辞書に追加するだけです。これにより、ループが見えなくなりますが、ループはまだ存在しています。

于 2012-05-09T20:23:44.747 に答える