C# 4.0 полное руководство - 2011 - Герберт Шилдт
Шрифт:
Интервал:
Закладка:
Интерфейс IComparer<T> находится в пространстве имен System. Collections . Generic. В нем определяется метод Compare (), общая форма которого приведена ниже.
int Compare(Т х, Т у)
Он действует таким же образом, как и его необобщенный аналог, возвращая значение больше нуля, если х больше у значение меньше нуля, если х меньше у и, наконец, нулевое значение, если оба значения равны. Преимущество интерфейса IComparer<T> заключается в том, что он обеспечивает типовую безопасность. Ведь в этом случае тип обрабатываемых данных указывается явным образрм, а следовательно, никакого приведения типов не требуется.
В последующих разделах демонстрируется ряд наиболее распространенных операций с массивами.
Таблица 21.11. Свойства, определенные в классе Array
Свойство
Назначение
public bool IsFixedSize { get; }
public bool IsReadOnly { get; }
public bool
IsSynchronized { get; }
Доступно только для чтения. Принимает логическое значение true, если массив имеет фиксированный размер, и логическое значение false, если массив может изменять его динамически
Доступно только для чтения. Принимает логическое значение true, если объект класса Array предназначен только для чтения, а иначе — логическое значение false. Для массивов это свойство всегда имеет логическое значение true Доступно только для чтения. Принимает логическое значение true, если массив можно безопасно использовать в многопоточной среде, а иначе — логическое значение false. Для массивов это свойство всегда имеет логическое значение true
Свойство
Назначение '
public int Length {
Доступно только для чтения. Имеет тип int и содержит ко
get; }
личество элементов в массиве
public long LongLength
Доступно только для чтения. Имеет тип long и содержит
{ get; }
количество элементов в массиве
public int Rank { get; }
Доступно только для чтения. Содержит размерность массива
public object SyncRoot
Доступно только для чтения. Содержит объект, предназна
{ get; }
ченный для синхронизации доступа к массиву
Таблица 21.12. Методы, определенные в классе Array
Метод
Назначение
public static
Возвращает доступную только для чтения коллек
ReadOnlyCollection<T>
цию, которая включает в себя массив, определяе
AsReadOnly<T>(Т[] array)
мый параметром array
public static int
Осуществляет поиск значения value в массиве
BinarySearch(Array
array,
array. Возвращает индекс первого вхождения
object value)
искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в массиве
BinarySearch<T>(T[]
array,
array. Возвращает индекс первого вхождения
T value)
искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в масси
BinarySearch(Array
array,
ве, определяемом параметром array, исполь
object value, IComparer
зуя способ сравнения, задаваемый параметром
comparer)
comparer. Возвращает индекс первого вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в массиве
BinarySearch<T> (T [ ]
array,
array, используя способ сравнения, задаваемый
T value, IComparer<T>
параметром comparer. Возвращает индекс перво
comparer)
го вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в части мас
BinarySearch(Array
array,
сива array. Поиск начинается с индекса, зада
int index, int length,
ваемого параметром index, и охватывает число
object value)
элементов, определяемых параметром length. Возвращает индекс первого вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
Метод
Назначение
public static int
Осуществляет поиск значения value в части мас
BinarySearch<T>(T[] array,
сива array. Поиск начинается с индекса, зада
int index, int length, T
ваемого параметром index, и охватывает число
value)
элементов, определяемых параметром length. Возвращает индекс первого вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в части мас
BinarySearch(Array array,
сива array, используя способ сравнения, опреде
int index, int length,
ляемый параметром comparer. Поиск начинается
object value, IComparer
с индекса, задаваемого параметром index, и охва
comparer)
тывает число элементов, определяемых параметром length. Возвращает индекс первого вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static int
Осуществляет поиск значения value в части мас
BinarySearch<T>(T [] array,
сива array, используя способ сравнения, опреде
int index, int length,
ляемый параметром comparer. Поиск начинается
T value, Icomparer<T>
с индекса, задаваемого параметром index, и охва
comparer)
тывает число элементов, определяемых параметром length. Возвращает индекс первого вхождения искомого значения. Если оно не найдено, возвращает отрицательное значение. Массив array должен быть отсортированным и одномерным
public static void
Устанавливает заданные элементы массива array
Clear(Array array, int
равными нулю, пустому значению null или логи
index, int length)
ческому значению false в зависимости оттипэ элемента: значения, ссылочного или логического. Подмножество элементов, подлежащих обнулению, начинается с индекса, задаваемого параметром index, и включает в себя число элементов, определяемых параметром length
public object Clone ()
Возвращает копию вызывающего массива. Эта копия ссылается на те же элементы, что и оригинал, поэтому она называется “неполной". Таким образом, изменения, вносимые в элементы, влияют на оба массива, поскольку и в том и в другом используются одни и те же элементы
public static void
Копирует число элементов, задаваемых па
ConstrainedCopy(Array
раметром length, из исходного массива
sourceArray, int sourcelndex,
sourceArray, начиная с элемента, указывае
Array destinationArray, int
мого по индексу sourcelndex, в целевой мас
destinationlndex, int length)
сив destinationArray, начиная с элемента,
_Продолжение табл. 21.12
Метод
Назначение
указываемого по индексу destinationlndex. Если
оба массива имеют одинаковый ссылочный тип, то метод ConstrainedCopy () создает “неполную копию", в результате чего оба массива будут ссылаться на одни и те же элементы. Если же во время копирования возникает ошибка, то содержимое целевого массива destinationAr ray остается прежним