lista instanciar generic ejemplo c# collections ilist

instanciar - lista c#



Problemas de IList ¿Tamaño fijo? (5)

El método Split devuelve una matriz, y no puede cambiar el tamaño de una matriz.

Puede crear una List<string> desde la matriz usando el método de extensión ToList :

IList<string> stelle = stelleString.Split(''-'').ToList();

o el constructor List<T> :

IList<string> stelle = new List<string>(stelleString.Split(''-''));

Además, es probable que no desee utilizar la interfaz IList<T> como tipo de variable, sino que solo use el tipo real del objeto:

string[] stelle = stelleString.Split(''-'');

o:

List<string> stelle = stelleString.Split(''-'').ToList();

Esto le permitirá usar exactamente lo que la clase puede hacer, no limitado a la interfaz IList<T> , y ningún método que no sea compatible.

Tengo este codigo

IList<string> stelle = stelleString.Split(''-''); if (stelle.Contains("3")) stelle.Add("8"); if (stelle.Contains("4")) stelle.Add("6");

pero parece que IList tiene un tamaño fijo después de un .Split (): System.NotSupportedException: la colección era de un tamaño fijo.

¿Como puedo solucionar este problema?


Llame a ToList() al resultado:

IList<string> stelle = stelleString.Split(''-'').ToList();


String.split devuelve una matriz. Pero puedes redimensionar el array. En VB es

ReDim perserve myarray(newlength minus one)


Tiene una cadena de causa de tamaño fijo. La string.Split devuelve una cadena []. Debe pasar el valor de retorno de la división a una instancia de <cadena> para admitir la adición de elementos adicionales.


string.Split devuelve una matriz de cadenas. Esto tendría un tamaño fijo.

Puede convertirlo en una List<string> pasando el resultado al constructor List<T> :

IList<string> stelle = new List<string>(stelleString.Split(''-''));

O, si está disponible, puede usar el ToList() LINQ ToList() :

IList<string> stelle = stelleString.Split(''-'').ToList();