tengo lista de de GuidCómo copiar la Lista de matriz
List<Guid> MyList;
necesito para copiar su contenido a la matriz
Guid[]
favor me recomiendan una solución bastante
tengo lista de de GuidCómo copiar la Lista de matriz
List<Guid> MyList;
necesito para copiar su contenido a la matriz
Guid[]
favor me recomiendan una solución bastante
Como Luke dijo en comentarios, el tipo particular List<T>
ya tiene un método ToArray()
. Pero si usted está usando C# 3.0, puede aprovechar el método ToArray()
extensión en cualquier IEnumerable
ejemplo (que incluye IList
, IList<T>
, colecciones, otras matrices, etc.)
var myList = new List<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array = myList.ToArray(); // instance method
IList<Guid> myList2 = new List<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array2 = myList2.ToArray(); // extension method
var myList3 = new Collection<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array3 = myList3.ToArray(); // extension method
En cuanto a su segunda pregunta:
Usted puede utilizar el método Select
para llevar a cabo la proyección necesaria:
var list = new List<MyClass> {new MyClass(), new MyClass()};
Guid[] array = list.Select(mc => mc.value).ToArray();
Muchas gracias. –
'List
@Luke: ¡Muy buen punto! Actualicé mi respuesta en consecuencia. Gracias. –
Sólo debería tener que llamar MyList.ToArray() para obtener una matriz de los elementos.
Utilizando el Enumerable.ToArray() Extension Method que puede hacer:
var guidArray = MyList.ToArray();
Si usted todavía está utilizando C# 2.0 se puede utilizar el método List.ToArray. La sintaxis es la misma (excepto que no hay una palabra clave var
en C# 2.0).
La nueva forma (usando extensiones o el método ToArray() en las listas genéricos en .Net 2.0):
Guid[] guidArray = MyList.ToArray();
La forma antigua:
Guid[] guidArray = new guidArray[MyList.Length];
int idx = 0;
foreach (var guid in MyList)
{
guidArray[idx++] = guid;
}
C# 2.0 tiene 'List.ToArray', que usa' System.Array.Copy' –
Supongo que estoy mostrando mi edad. :-) – tvanfosson
Sin embargo, otra opción, además de Guid[] MyArray = MyList.ToArray()
:
Guid[] MyArray = new Guid[MyList.Count]; // or wherever you get your array from
MyList.CopyTo(MyArray, 0);
Esta solución podría ser mejor si, por cualquier razón, usted ya tiene un properly- array de tamaño y simplemente desea llenarlo (en lugar de construir uno nuevo, como lo hace List<T>.ToArray()
).
Otra pregunta, MiClase { Valor de guía; } Lista Copiar la propiedad Guid a una matriz de Guid's? Me refiero a no utilizar la declaración de iteración –
No estoy al 100% en la etiqueta SO, pero podría ser mejor hacer una nueva pregunta como una nueva pregunta. Podría estar equivocado. –