C # Пользовательский словарь взять - конвертировать обратно из IEnumerable - PullRequest
2 голосов
/ 26 марта 2010

Сценарий

Уже прочитав пост на этом же сайте, который не сработал, я чувствую себя немного озадаченным, но уверен, что делал это раньше.

У меня есть словарь. Я хочу взять первые 200 значений из словаря.

код

  Dictionary<int,SomeObject> oldDict = new Dictionary<int,SomeObject>();
  //oldDict gets populated somewhere else.
  Dictionary<int,SomeObject> newDict = new Dictionary<int,SomeObject>();
  newDict = oldDict.Take(200).ToDictionary();

ЯВНО, дубль возвращает IENumerable, поэтому вам нужно запустить ToDictionary (), чтобы преобразовать его обратно в словарь того же типа. ОДНАКО, это просто не работает, оно хочет какую-то случайную селекторную кнопку - или что-то? Я даже пытался просто разыграть его, но безрезультатно. Есть идеи?

1 Ответ

5 голосов
/ 26 марта 2010

Попробуйте это:

newDict = oldDict.Take(200).ToDictionary(x => x.Key, x => x.Value);

В основном словарь позволяет перебирать пары ключ / значение;когда вы хотите преобразовать обратно в словарь, вы должны указать, что использовать в качестве ключа и что использовать в качестве значения.подвергните сомнению правильность вашего кода - потому что в словаре нет понятия «первых 200 значений».Не полагайтесь на порядок в словаре.В основном это даст вам фактически произвольно 200 записей из словаря.

Что вы пытаетесь сделать?Что вы думаете о «первых» 200 записях?

...