2012-01-16 5 views
0

Возможно ли это на C# для получения массива из интерфейса System.Collections.IList без использования Generics?Как получить массив из IList inteface

EDIT: Мне нужен подход для преобразования коллекции в массив. Моя коллекция присваивается IList. Можно ли это сделать? Я не знаю реальной реализации моей коллекции, поэтому я не могу этого сделать. например, int [] arr = (ArrayList) list.ToArray();

+0

Это не совсем понятно, что вы пытаетесь достичь. Пожалуйста, будьте более конкретными. –

+0

CopyTo()? http://msdn.microsoft.com/en-us/library/system.collections.icollection.copyto.aspx – IanNorton

+0

@Jon Skeet, пожалуйста, ознакомьтесь с моими изменениями –

ответ

2

Вы можете использовать CopyTo метод:

IList list = new List<string>(new[] { "one", "two", "three" }); 
string[] array = new string[list.Count]; 
list.CopyTo(array, 0); 
+0

Это использует Generics –

+3

@Neil: да, исходный список является общим, но он используется только через не-общий интерфейс «IList». –

+3

Чтобы подчеркнуть точку Фредрика - вы можете в значительной степени игнорировать все, что находится справа от '=' в первой строке; здесь важная вещь: «у нас есть' IList' с именем 'list' ' –

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