Преобразуйте значения словаря в массив

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

77
задан Breeze 12 July 2016 в 09:46
поделиться

2 ответа

// dict is Dictionary<string, Foo>

Foo[] foos = new Foo[dict.Count];
dict.Values.CopyTo(foos, 0);

// or in C# 3.0:
var foos = dict.Values.ToArray();
117
ответ дан Matt Hamilton 24 November 2019 в 10:56
поделиться

Существует ToArray () функция на Значениях:

Foo[] arr = new Foo[dict.Count];    
dict.Values.CopyTo(arr, 0);

, Но я не думаю его эффективное (я действительно не попробовал, но я предполагаю, что это копирует все эти значения в массив). Вам действительно нужен Массив? В противном случае я попытался бы передать IEnumerable:

IEnumerable<Foo> foos = dict.Values;
5
ответ дан Grzenio 24 November 2019 в 10:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: