Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
// 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();
Существует ToArray () функция на Значениях:
Foo[] arr = new Foo[dict.Count];
dict.Values.CopyTo(arr, 0);
, Но я не думаю его эффективное (я действительно не попробовал, но я предполагаю, что это копирует все эти значения в массив). Вам действительно нужен Массив? В противном случае я попытался бы передать IEnumerable:
IEnumerable<Foo> foos = dict.Values;