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();