Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Одномерные массивы, имеющие нижнюю границу нуля, автоматически применяют IList<T>. Это позволяет создавать универсальные методы, которые могут использовать тот же код для итерации через массивы и другие типы коллекций. Этот метод в первую очередь полезен для чтения данных в коллекциях. Интерфейс IList<T> нельзя использовать для добавления или удаления элементов из массива. Будет выброшено исключение, если вы попробуете вызвать метод IList<T> в этом контексте, например, RemoveAt для массива.
В следующем примере кода показано, как один универсальный метод, принимаюющий входной параметр, IList<T> может выполнять итерацию по списку и массиву, в этом случае массив целых чисел.
class Program
{
static void Main()
{
int[] arr = [0, 1, 2, 3, 4];
List<int> list = new List<int>();
for (int x = 5; x < 10; x++)
{
list.Add(x);
}
ProcessItems<int>(arr);
ProcessItems<int>(list);
}
static void ProcessItems<T>(IList<T> coll)
{
// IsReadOnly returns True for the array and False for the List.
System.Console.WriteLine
("IsReadOnly returns {0} for this collection.",
coll.IsReadOnly);
// The following statement causes a run-time exception for the
// array, but not for the List.
//coll.RemoveAt(4);
foreach (T item in coll)
{
System.Console.Write(item?.ToString() + " ");
}
System.Console.WriteLine();
}
}