тестирование одного элемента в словаре <k, v> - PullRequest
4 голосов
/ 20 апреля 2010

Я использую VS 2005 fx2.0.

Если я знаю, что мой словарь содержит только 1 элемент, как мне к нему добраться?

Спасибо, Стержень

Ответы [ 5 ]

5 голосов
/ 20 апреля 2010

Единственный способ (с фреймворком 2.0) - выполнить итерацию по нему с помощью foreach.

Или создать метод, который делает это, например:

public static T GetFirstElementOrDefault<T>(IEnumerable<T> values)
{
  T value = default(T);
  foreach(T val in values)
  {
    value = val;
    break;
  }
  return value;
}

Он работает со всеми IEnumerable ив вашем случае T - это KeyValuePair

5 голосов
/ 20 апреля 2010

Гравитон правильно, но чтобы быть немного безопаснее (в случае, если имеется более одного элемента), вы можете сделать это:

yourDictionary.First();

И чтобы быть даже более безопасным, вы могли бы сделать это (в том случае, если словарь также пуст):

yourDictionary.FirstOrDefault();
5 голосов
/ 20 апреля 2010

Убедитесь, что у вас есть using System.Linq;. Приведенная ниже команда получит пару значений ключа словаря

var item = Dictionary<k,v>.Single();
var key = item.Key;
var value =item.Value; 
1 голос
/ 20 апреля 2010

Просто переберите все элементы словаря (в данном случае только один)

foreach (KeyValuePair<v, k> keyValue in dictionary)
            {

            }
0 голосов
/ 20 апреля 2010
dictionary.SingleOrDefault();
...