Прочитать на английском

Поделиться через


Array.SetValue Метод

Определение

Присваивает заданному элементу текущего массива Array заданное значение.

Перегрузки

SetValue(Object, Int32)

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 32-битовое целое число.

SetValue(Object, Int32[])

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 32-битовых целых чисел.

SetValue(Object, Int64[])

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 64-битовых целых чисел.

SetValue(Object, Int32, Int32)

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

SetValue(Object, Int64, Int64)

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

SetValue(Object, Int32, Int32, Int32)

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

SetValue(Object, Int64, Int64, Int64)

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

SetValue(Object, Int64)

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 64-битовое целое число.

Примеры

В следующем примере кода показано, как задать и получить определенное значение в одномерном или многомерном массиве.

using System;

public class SamplesArray  {

   public static void Main()  {

      // Creates and initializes a one-dimensional array.
      String[] myArr1 = new String[5];

      // Sets the element at index 3.
      myArr1.SetValue( "three", 3 );
      Console.WriteLine( "[3]:   {0}", myArr1.GetValue( 3 ) );

      // Creates and initializes a two-dimensional array.
      String[,] myArr2 = new String[5,5];

      // Sets the element at index 1,3.
      myArr2.SetValue( "one-three", 1, 3 );
      Console.WriteLine( "[1,3]:   {0}", myArr2.GetValue( 1, 3 ) );

      // Creates and initializes a three-dimensional array.
      String[,,] myArr3 = new String[5,5,5];

      // Sets the element at index 1,2,3.
      myArr3.SetValue( "one-two-three", 1, 2, 3 );
      Console.WriteLine( "[1,2,3]:   {0}", myArr3.GetValue( 1, 2, 3 ) );

      // Creates and initializes a seven-dimensional array.
      String[,,,,,,] myArr7 = new String[5,5,5,5,5,5,5];

      // Sets the element at index 1,2,3,0,1,2,3.
      int[] myIndices = new int[7] { 1, 2, 3, 0, 1, 2, 3 };
      myArr7.SetValue( "one-two-three-zero-one-two-three", myIndices );
      Console.WriteLine( "[1,2,3,0,1,2,3]:   {0}", myArr7.GetValue( myIndices ) );
   }
}


/*
This code produces the following output.

[3]:   three
[1,3]:   one-three
[1,2,3]:   one-two-three
[1,2,3,0,1,2,3]:   one-two-three-zero-one-two-three

*/

SetValue(Object, Int32)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 32-битовое целое число.

public void SetValue (object value, int index);
public void SetValue (object? value, int index);

Параметры

value
Object

Новое значение указанного элемента.

index
Int32

32-разрядное целое число, представляющее позицию элемента в массиве Array, для которого требуется установить значение.

Исключения

Текущий массив Array не имеет ровно одного измерения.

value не может быть приведен к типу элемента текущего массива Array.

index находится вне диапазона допустимых индексов для текущего массива Array.

Комментарии

Методы GetLowerBound и GetUpperBound могут определить, выходит ли значение index за пределы.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулем. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

SetValue(Object, Int32[])

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 32-битовых целых чисел.

public void SetValue (object value, params int[] indices);
public void SetValue (object? value, params int[] indices);

Параметры

value
Object

Новое значение указанного элемента.

indices
Int32[]

Одномерный массив 32-битовых целых чисел, представляющий индексы, которые задают позицию задаваемого элемента в массиве.

Исключения

indices имеет значение null.

Число измерений в текущем массиве Array не равно числу элементов в indices.

value не может быть приведен к типу элемента текущего массива Array.

Любой элемент в indices находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

Число элементов в indices должно равняться количеству измерений в Array. Все элементы в массиве indices должны в совокупности указывать положение нужного элемента в многомерном Arrayобъекте .

Методы GetLowerBound и GetUpperBound могут определить, находится ли любое из значений в массиве indices вне границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулем. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

SetValue(Object, Int64[])

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции многомерного массива Array. Индексы задаются как массив 64-битовых целых чисел.

public void SetValue (object? value, params long[] indices);
public void SetValue (object value, params long[] indices);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetValue (object value, params long[] indices);

Параметры

value
Object

Новое значение указанного элемента.

indices
Int64[]

Одномерный массив 64-разрядных целых чисел, представляющий индексы, которые указывают позицию задаваемого элемента в массиве.

Атрибуты

Исключения

indices имеет значение null.

Число измерений в текущем массиве Array не равно числу элементов в indices.

value не может быть приведен к типу элемента текущего массива Array.

Любой элемент в indices находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

Число элементов в indices должно равняться количеству измерений в Array. Все элементы в массиве indices должны в совокупности указывать положение нужного элемента в многомерном Arrayобъекте .

Методы GetLowerBound и GetUpperBound могут определить, находится ли любое из значений в массиве indices вне границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулем. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SetValue(Object, Int32, Int32)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

public void SetValue (object? value, int index1, int index2);
public void SetValue (object value, int index1, int index2);

Параметры

value
Object

Новое значение указанного элемента.

index1
Int32

32-разрядное целое число, представляющее индекс задаваемого элемента в первом измерении массива Array.

index2
Int32

32-разрядное целое число, представляющее индекс задаваемого элемента во втором измерении массива Array.

Исключения

Текущий массив Array не имеет ровно два измерения.

value не может быть приведен к типу элемента текущего массива Array.

index1 или index2 находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

GetLowerBound Методы и GetUpperBound могут определить, выходит ли какой-либо из индексов за пределы границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулем. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SetValue(Object, Int64, Int64)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции двухмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

public void SetValue (object? value, long index1, long index2);
public void SetValue (object value, long index1, long index2);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetValue (object value, long index1, long index2);

Параметры

value
Object

Новое значение указанного элемента.

index1
Int64

64-разрядное целое число, представляющее индекс задаваемого элемента в первом измерении массива Array.

index2
Int64

64-разрядное целое число, представляющее индекс задаваемого элемента во втором измерении массива Array.

Атрибуты

Исключения

Текущий массив Array не имеет ровно два измерения.

value не может быть приведен к типу элемента текущего массива Array.

index1 или index2 находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

Методы GetLowerBound и GetUpperBound могут определить, выходит ли какой-либо из индексов за пределы границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулевым значением. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SetValue(Object, Int32, Int32, Int32)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 32-битовых целых чисел.

public void SetValue (object? value, int index1, int index2, int index3);
public void SetValue (object value, int index1, int index2, int index3);

Параметры

value
Object

Новое значение указанного элемента.

index1
Int32

32-разрядное целое число, представляющее индекс задаваемого элемента в первом измерении массива Array.

index2
Int32

32-разрядное целое число, представляющее индекс задаваемого элемента во втором измерении массива Array.

index3
Int32

32-разрядное целое число, представляющее индекс задаваемого элемента в третьем измерении массива Array.

Исключения

Текущий массив Array не имеет ровно трех измерений.

value не может быть приведен к типу элемента текущего массива Array.

index1, index2 или index3 находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

Методы GetLowerBound и GetUpperBound могут определить, выходит ли какой-либо из индексов за пределы границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулевым значением. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SetValue(Object, Int64, Int64, Int64)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции трехмерного массива Array. Индексы задаются в виде 64-битовых целых чисел.

public void SetValue (object? value, long index1, long index2, long index3);
public void SetValue (object value, long index1, long index2, long index3);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetValue (object value, long index1, long index2, long index3);

Параметры

value
Object

Новое значение указанного элемента.

index1
Int64

64-разрядное целое число, представляющее индекс задаваемого элемента в первом измерении массива Array.

index2
Int64

64-разрядное целое число, представляющее индекс задаваемого элемента во втором измерении массива Array.

index3
Int64

64-разрядное целое число, представляющее индекс задаваемого элемента в третьем измерении массива Array.

Атрибуты

Исключения

Текущий массив Array не имеет ровно трех измерений.

value не может быть приведен к типу элемента текущего массива Array.

index1, index2 или index3 находится вне диапазона допустимых индексов для соответствующего измерения текущего массива Array.

Комментарии

Методы GetLowerBound и GetUpperBound могут определить, выходит ли какой-либо из индексов за пределы границ.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулевым значением. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

SetValue(Object, Int64)

Исходный код:
Array.cs
Исходный код:
Array.cs
Исходный код:
Array.cs

Присваивает значение элементу, находящемуся в указанной позиции одномерного массива Array. Индекс задается как 64-битовое целое число.

public void SetValue (object? value, long index);
public void SetValue (object value, long index);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetValue (object value, long index);

Параметры

value
Object

Новое значение указанного элемента.

index
Int64

64-разрядное целое число, представляющее позицию элемента в массиве Array, для которого требуется установить значение.

Атрибуты

Исключения

Текущий массив Array не имеет ровно одного измерения.

value не может быть приведен к типу элемента текущего массива Array.

index находится вне диапазона допустимых индексов для текущего массива Array.

Комментарии

Методы GetLowerBound и GetUpperBound могут определить, выходит ли значение index за пределы.

Дополнительные сведения о преобразованиях см. в разделе Convert.

Этот метод является операцией O(1).

Примечание

Если SetValue используется для назначения null элементу массива типов значений, все поля элемента инициализируются нулевым значением. Значение элемента не является пустой ссылкой и не может быть найдено путем поиска пустой ссылки.

См. также раздел

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1