Ключи словаря (список <int>) Получить в C # - PullRequest
0 голосов
/ 19 августа 2010

Предполагается, что я определил свой диктант следующим образом.

Dictionary<list<int>, list<string>> d = new Dictionary<List<int>, list<string>>()

Как быстро получить ключ и значение dict.

[обновление]

Я хочу получить список ключей. Я попробовал простой способ, как показано ниже

List<int> KeysList= new List<int>(d.Keys);

Но это не работает со сложным ключом в моем случае.

Могу ли я использовать только KeyValuePair, как показано ниже?

foreach (KeyValuePair<List<int>, List<string>> pair in d)
{
     KeysList= new List<int>(pair.Key);
}

1 Ответ

3 голосов
/ 19 августа 2010

У вас есть потенциальная проблема, с которой можно начать: List<T> не переопределяет Equals, поэтому вам нужно использовать точную ссылку на тот же ключ, чтобы получить значение для ключа.

Сказав, что, если у вас есть эта ссылка, это так же просто, как

List<string> value = d[key];

или

List<string> value;
if (d.TryGetValue(key, out value))
{
    ...
}

Это довольно необычно иметьа List<T> как ключ - можете ли вы рассказать нам больше о том, что вы пытаетесь сделать?Там может быть лучший подход.

...