2010-02-16 4 views
2

Я до сих пор не пытался использовать предложение foreach в общем списке. Ошибка компиляции я получаю:Проблема с использованием «foreach» с общим списком

оператор Еогеасп не может работать с переменными типа «DMS.OrderNodeList», потому что «DMS.OrderNodeList» не содержит публичное определение «GetEnumerator»

Любые предложения, что делать дальше ?

Спасибо,

+1

OrderNodeList не реализует ни один из перечислимых интерфейсов? IEnumerable, IList, IList и т. Д. Следовательно, это * не * общий список - насколько это касается .NET, это вовсе не список. Что касается «Любые предложения о том, что делать дальше» - да, прочитайте списки и дженерики в .NET. В частности, найдите время, чтобы узнать об IEnumerable и IEnumerable и что они означают. – bzlm

+5

Google не может найти * ничего * в «DMS.OrderNodeList». Как это определяется? –

+0

konrad. хороший. тонкий. +1 –

ответ

1

Вы должны реализовать интерфейс IEnumerable в вашем пользовательских коллекции (это не общий список).

+0

Если он предоставляет IEnumerable .ToList(). ForEach() будет вариантом ... Я думаю, вы имеете в виду, что он должен явно реализовать IEnumerable <>, no? –

+0

@Sky Ирония заключается в том, что интерфейс IEnumerable фактически не имеет ForEach() в качестве члена. Увы, исходное сообщение использует неопределенное слово «generic», поэтому мы не знаем, должен ли список быть общим (IEnumerable ), или если он «общий», поскольку он содержит разное. вещи. Если ему просто нужно ForEach(), то IEnumerable - то, что ему нужно, IEnumerable не заставляет реализацию. – bakasan

+0

Я слышу тебя. Угадайте, нам придется дождаться выхода бета-версии DMS.OrderNodeList. –

3

Сообщите OrderNodeList класс продлить Collection<OrderNode>, то вы получите этот нумератор в тебе (и, вероятно, большая часть логики, которую вы создали вручную управлять коллекция теперь будет реализован для вас.)

Предполагается, что ваш OrderNodeList содержит коллекцию объектов OrderNode.

+0

Коллекция списков, вы уверены? Если он не будет расширяться Коллекция

+0

Argh, конечно же! –

Смежные вопросы