# Array.SetValue Método

## Ejemplos

En el ejemplo de código siguiente se muestra cómo establecer y obtener un valor específico en una matriz unidimensional o multidimensional.

``````using namespace System;
int main()
{

// Creates and initializes a one-dimensional array.
array<String^>^myArr1 = gcnew array<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.
array<String^, 2>^myArr2 = gcnew array<String^,2>(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.
array<String^, 3>^myArr3 = gcnew array<String^,3>(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.
array<String^, 7>^myArr7 = gcnew array<String^,7>(5,5,5,5,5,5,5);

// Sets the element at index 1,2,3,0,1,2,3.
array<Int32>^myIndices = {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

*/
``````
``````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

*/
``````
``````open System

// Creates and initializes a one-dimensional array.
let myArr1 = Array.zeroCreate<string> 5

// Sets the element at index 3.
myArr1.SetValue("three", 3)
printfn \$"[3]:   {myArr1.GetValue 3}"

// Creates and initializes a two-dimensional array.
let myArr2 = Array2D.zeroCreate<string> 5 5

// Sets the element at index 1,3.
myArr2.SetValue("one-three", 1, 3)
printfn \$"[1,3]:   {myArr2.GetValue(1, 3)}"

// Creates and initializes a three-dimensional array.
let myArr3 = Array3D.zeroCreate<string> 5 5 5

// Sets the element at index 1,2,3.
myArr3.SetValue("one-two-three", 1, 2, 3)
printfn \$"[1,2,3]:   {myArr3.GetValue(1, 2, 3)}"

// Creates and initializes a seven-dimensional array.
let myArr7 = Array.CreateInstance(typeof<string>, 5, 5, 5, 5, 5, 5, 5)

// Sets the element at index 1,2,3,0,1,2,3.
let myIndices = [| 1; 2; 3; 0; 1; 2; 3 |]
myArr7.SetValue("one-two-three-zero-one-two-three", myIndices)
printfn \$"[1,2,3,0,1,2,3]:   {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
``````
``````Public Class SamplesArray

Public Shared Sub Main()

' Creates and initializes a one-dimensional array.
Dim myArr1(4) As [String]

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

' Creates and initializes a two-dimensional array.
Dim myArr2(5, 5) As [String]

' 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.
Dim myArr3(5, 5, 5) As [String]

' 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.
Dim myArr7(5, 5, 5, 5, 5, 5, 5) As [String]

' Sets the element at index 1,2,3,0,1,2,3.
Dim myIndices() As Integer = {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))

End Sub

End Class

'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)

Establece un valor en el elemento situado en la posición especificada de una matriz Array unidimensional. El índice se especifica como un entero de 32 bits.

``````public:
void SetValue(System::Object ^ value, int index);``````
``public void SetValue (object value, int index);``
``public void SetValue (object? value, int index);``
``member this.SetValue : obj * int -> unit``
``Public Sub SetValue (value As Object, index As Integer)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index
Int32

Entero de 32 bits que representa la posición del elemento Array que se va a establecer.

#### Excepciones

El Array actual no tiene exactamente una dimensión.

`value` no se puede convertir al tipo de elemento del Array actual.

`index` está fuera del intervalo de índices válidos para el Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si el valor de `index` está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se encuentra buscando una referencia nula.

## SetValue(Object, Int32[])

Establece un valor en el elemento situado en la posición especificada de una matriz Array multidimensional. Los índices se especifican en forma de una matriz de enteros de 32 bits.

``````public:
void SetValue(System::Object ^ value, ... cli::array <int> ^ indices);``````
``public void SetValue (object value, params int[] indices);``
``public void SetValue (object? value, params int[] indices);``
``member this.SetValue : obj * int[] -> unit``
``Public Sub SetValue (value As Object, ParamArray indices As Integer())``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

indices
Int32[]

Matriz unidimensional de enteros de 32 bits que representan los índices que especifican la posición del elemento que se va a establecer.

#### Excepciones

`indices` es `null`.

El número de dimensiones de la Array actual no es igual al número de elementos de `indices`.

`value` no se puede convertir al tipo de elemento del Array actual.

Cualquier elemento de `indices` está fuera del intervalo de índices válidos para la dimensión correspondiente de la Array actual.

### Comentarios

El número de elementos de `indices` debe ser igual al número de dimensiones de .Array Todos los elementos de la `indices` matriz deben especificar colectivamente la posición del elemento deseado en el elemento multidimensional Array.

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los valores de la `indices` matriz está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se encuentra buscando una referencia nula.

## SetValue(Object, Int64)

Establece un valor en el elemento situado en la posición especificada de una matriz Array unidimensional. El índice se especifica como un entero de 64 bits.

``````public:
void SetValue(System::Object ^ value, long index);``````
``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);``````
``member this.SetValue : obj * int64 -> unit``
``````[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetValue : obj * int64 -> unit``````
``Public Sub SetValue (value As Object, index As Long)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index
Int64

Entero de 64 bits que representa la posición del elemento Array que se va a establecer.

Atributos

#### Excepciones

El Array actual no tiene exactamente una dimensión.

`value` no se puede convertir al tipo de elemento del Array actual.

`index` está fuera del intervalo de índices válidos para el Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si el valor de `index` está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.

## SetValue(Object, Int64[])

Establece un valor en el elemento situado en la posición especificada de una matriz Array multidimensional. Los índices se especifican como matriz de enteros de 64 bits.

``````public:
void SetValue(System::Object ^ value, ... cli::array <long> ^ indices);``````
``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);``````
``member this.SetValue : obj * int64[] -> unit``
``````[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetValue : obj * int64[] -> unit``````
``Public Sub SetValue (value As Object, ParamArray indices As Long())``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

indices
Int64[]

Matriz unidimensional de enteros de 64 bits que representan los índices que especifican la posición del elemento que se va a establecer.

Atributos

#### Excepciones

`indices` es `null`.

El número de dimensiones de la Array actual no es igual al número de elementos de `indices`.

`value` no se puede convertir al tipo de elemento del Array actual.

Cualquier elemento de `indices` está fuera del intervalo de índices válidos para la dimensión correspondiente de la Array actual.

### Comentarios

El número de elementos `indices` de debe ser igual al número de dimensiones de Array. Todos los elementos de la `indices` matriz deben especificar colectivamente la posición del elemento deseado en el elemento multidimensional Array.

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los valores de la `indices` matriz está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.

## SetValue(Object, Int32, Int32)

Establece un valor en el elemento situado en la posición especificada de la Array bidimensional. Los índices se especifican como enteros de 32 bits.

``````public:
void SetValue(System::Object ^ value, int index1, int index2);``````
``public void SetValue (object? value, int index1, int index2);``
``public void SetValue (object value, int index1, int index2);``
``member this.SetValue : obj * int * int -> unit``
``Public Sub SetValue (value As Object, index1 As Integer, index2 As Integer)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index1
Int32

Entero de 32 bits que representa el índice de la primera dimensión del elemento Array que se va a establecer.

index2
Int32

Entero de 32 bits que representa el índice de la segunda dimensión del elemento Array que se va a establecer.

#### Excepciones

El Array actual no tiene exactamente dos dimensiones.

`value` no se puede convertir al tipo de elemento del Array actual.

`index1` o `index2` está fuera del intervalo de índices válidos para la dimensión correspondiente de la Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los índices está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.

## SetValue(Object, Int64, Int64)

Establece un valor en el elemento situado en la posición especificada de la Array bidimensional. Los índices se especifican como enteros de 64 bits.

``````public:
void SetValue(System::Object ^ value, long index1, long index2);``````
``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);``````
``member this.SetValue : obj * int64 * int64 -> unit``
``````[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetValue : obj * int64 * int64 -> unit``````
``Public Sub SetValue (value As Object, index1 As Long, index2 As Long)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index1
Int64

Entero de 64 bits que representa el índice de la primera dimensión del elemento Array que se va a establecer.

index2
Int64

Entero de 64 bits que representa el índice de la segunda dimensión del elemento Array que se va a establecer.

Atributos

#### Excepciones

El Array actual no tiene exactamente dos dimensiones.

`value` no se puede convertir al tipo de elemento del Array actual.

`index1` o `index2` está fuera del intervalo de índices válidos para la dimensión correspondiente de la Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los índices está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.

## SetValue(Object, Int32, Int32, Int32)

Establece un valor en el elemento situado en la posición especificada de la Array tridimensional. Los índices se especifican como enteros de 32 bits.

``````public:
void SetValue(System::Object ^ value, int index1, int index2, int index3);``````
``public void SetValue (object? value, int index1, int index2, int index3);``
``public void SetValue (object value, int index1, int index2, int index3);``
``member this.SetValue : obj * int * int * int -> unit``
``Public Sub SetValue (value As Object, index1 As Integer, index2 As Integer, index3 As Integer)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index1
Int32

Entero de 32 bits que representa el índice de la primera dimensión del elemento Array que se va a establecer.

index2
Int32

Entero de 32 bits que representa el índice de la segunda dimensión del elemento Array que se va a establecer.

index3
Int32

Entero de 32 bits que representa el índice de la tercera dimensión del elemento Array que se va a establecer.

#### Excepciones

El Array actual no tiene exactamente tres dimensiones.

`value` no se puede convertir al tipo de elemento del Array actual.

`index1`, `index2` o `index3` está fuera del intervalo de índices válidos para la dimensión correspondiente del Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los índices está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.

## SetValue(Object, Int64, Int64, Int64)

Establece un valor en el elemento situado en la posición especificada de la Array tridimensional. Los índices se especifican como enteros de 64 bits.

``````public:
void SetValue(System::Object ^ value, long index1, long index2, long index3);``````
``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);``````
``member this.SetValue : obj * int64 * int64 * int64 -> unit``
``````[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetValue : obj * int64 * int64 * int64 -> unit``````
``Public Sub SetValue (value As Object, index1 As Long, index2 As Long, index3 As Long)``

#### Parámetros

value
Object

Nuevo valor para el elemento especificado.

index1
Int64

Entero de 64 bits que representa el índice de la primera dimensión del elemento Array que se va a establecer.

index2
Int64

Entero de 64 bits que representa el índice de la segunda dimensión del elemento Array que se va a establecer.

index3
Int64

Entero de 64 bits que representa el índice de la tercera dimensión del elemento Array que se va a establecer.

Atributos

#### Excepciones

El Array actual no tiene exactamente tres dimensiones.

`value` no se puede convertir al tipo de elemento del Array actual.

`index1`, `index2` o `index3` está fuera del intervalo de índices válidos para la dimensión correspondiente del Array actual.

### Comentarios

Los GetLowerBound métodos y GetUpperBound pueden determinar si alguno de los índices está fuera de los límites.

Para obtener más información sobre las conversiones, vea Convert.

Este método es una operación O(1).

Nota

Si SetValue se usa para asignar `null` a un elemento de una matriz de tipos de valor, todos los campos del elemento se inicializan en cero. El valor del elemento no es una referencia nula y no se puede encontrar buscando una referencia nula.