Метод AsReadOnly
Статический метод AsReadOnly класса
Array
создаёт ReadOnlyCollection<T> поверх
переданного массива. Чтение идёт из того же
хранилища: изменение исходного массива по
индексу видно через обёртку.
Синтаксис
ReadOnlyCollection<T> view = Array.AsReadOnly(array);
Пример
Давайте прочитаем элемент через обёртку:
using System;
using System.Collections.ObjectModel;
class Program
{
static void Main()
{
int[] nums = {1, 2, 3, 4, 5};
ReadOnlyCollection<int> view = Array.AsReadOnly(nums);
Console.WriteLine(view[2]);
}
}
Результат выполнения кода:
3
Пример
Давайте изменим исходный массив и снова прочитаем:
using System;
using System.Collections.ObjectModel;
class Program
{
static void Main()
{
int[] nums = {1, 2, 3, 4, 5};
ReadOnlyCollection<int> view = Array.AsReadOnly(nums);
nums[0] = 9;
Console.WriteLine(view[0]);
}
}
Результат выполнения кода:
9
Пример
Давайте выведем число элементов обёртки:
using System;
using System.Collections.ObjectModel;
class Program
{
static void Main()
{
string[] items = {"a", "b", "c", "d", "e"};
ReadOnlyCollection<string> view = Array.AsReadOnly(items);
Console.WriteLine(view.Count);
}
}
Результат выполнения кода:
5
Смотрите также
-
метод
Clone,
который создаёт отдельную копию массива -
свойство
Length,
которое совпадает с Count обёртки -
метод
GetValue,
который читает элемент по индексам -
интерфейс
IReadOnlyList<T>,
который задаёт доступ только для чтения