Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método Array.AsReadOnly<T>

Retorna um wrapper de somente leitura para a matriz especificada.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public static ReadOnlyCollection<T> AsReadOnly<T>(
	T[] array
)

Parâmetros de tipo

T

O tipo de elementos da matriz.

Parâmetros

array
Tipo: T[]
A matriz unidimensional, com base em zero para dispor em um somente leituraReadOnlyCollection<T> wrapper.

Valor de retorno

Tipo: System.Collections.ObjectModel.ReadOnlyCollection<T>
Um somente leituraReadOnlyCollection<T> wrapper para a matriz especificada.

ExceçãoCondição
ArgumentNullException

array é null.

Para impedir que as modificações para o array, expor array somente por meio desse wrapper.

Uma coleção é somente leitura é simplesmente uma coleção com um invólucro que impede a modificação da coleção; portanto, se forem feitas alterações à coleção subjacente, a coleção somente leitura refletirá essas alterações.

Esse método é uma operação O(1).

O exemplo a seguir encapsula uma matriz em um somente leituraReadOnlyCollection<T>.

using System;
using System.Collections.Generic;

publicclass SamplesArray  {

   publicstaticvoid Main()  {

      // Create and initialize a new string array.
      String[] myArr = { "The", "quick", "brown", "fox" };

      // Display the values of the array.
      Console.WriteLine( "The string array initially contains the following values:" );
      PrintIndexAndValues( myArr );

      // Create a read-only IList wrapper around the array.
      IList<String> myList = Array.AsReadOnly( myArr );

      // Display the values of the read-only IList.
      Console.WriteLine( "The read-only IList contains the following values:" );
      PrintIndexAndValues( myList );

      // Attempt to change a value through the wrapper.try  {
         myList[3] = "CAT";
      }
      catch ( NotSupportedException e )  {
         Console.WriteLine( "{0} - {1}", e.GetType(), e.Message );
         Console.WriteLine();
      }

      // Change a value in the original array.
      myArr[2] = "RED";

      // Display the values of the array.
      Console.WriteLine( "After changing the third element, the string array contains the following values:" );
      PrintIndexAndValues( myArr );

      // Display the values of the read-only IList.
      Console.WriteLine( "After changing the third element, the read-only IList contains the following values:" );
      PrintIndexAndValues( myList );

   }

   publicstaticvoid PrintIndexAndValues( String[] myArr )  {
      for ( int i = 0; i < myArr.Length; i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, myArr[i] );
      }
      Console.WriteLine();
   }

   publicstaticvoid PrintIndexAndValues( IList<String> myList )  {
      for ( int i = 0; i < myList.Count; i++ )  {
         Console.WriteLine( "   [{0}] : {1}", i, myList[i] );
      }
      Console.WriteLine();
   }

}


/* 
This code produces the following output.

The string array initially contains the following values:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox

The read-only IList contains the following values:
   [0] : The
   [1] : quick
   [2] : brown
   [3] : fox

System.NotSupportedException - Collection is read-only.

After changing the third element, the string array contains the following values:
   [0] : The
   [1] : quick
   [2] : RED
   [3] : fox

After changing the third element, the read-only IList contains the following values:
   [0] : The
   [1] : quick
   [2] : RED
   [3] : fox

*/

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft