8
votes

Comment copier la liste sur le tableau

J'ai une liste de GUID

Guid[]


2 commentaires

Une autre question, myClass {valeur GUID; } Liste Comment copier la propriété GUID vers une matrice de GUID? Je veux dire ne pas utiliser de déclaration d'itération


Je ne suis pas à 100% sur So Etiquette, mais il peut être préférable de poser une nouvelle question comme une nouvelle question. Je peux me tromper.


5 Réponses :


22
votes

comme Luke a déclaré dans les commentaires, la liste particulière code> a déjà un toarray () code> méthode. Mais si vous utilisez C # 3.0, vous pouvez exploiter le toarray ( ) code> méthode d'extension sur tout IEnumerable code> instance code> IList code>, ilist code>, collections, autres tableaux , etc.) xxx pré>

concernant votre deuxième question: p>

Vous pouvez utiliser le Sélectionnez code> méthode pour effectuer la projection requise: p>

var list = new List<MyClass> {new MyClass(), new MyClass()};
Guid[] array = list.Select(mc => mc.value).ToArray();


2 commentaires

Liste est-il propre (c.-à-d. Pas une extension) toarray méthode disponible depuis .net2. (Exactement la même syntaxe que ci-dessus, bien que vous ne puissiez pas utiliser var ou des initialiseurs d'objet sans c # 3.)


@Luke: très bon point! J'ai mis à jour ma réponse en conséquence. Merci.



10
votes

Vous devriez simplement avoir à appeler myList.Tearray () pour obtenir un tableau des éléments.


0 commentaires

3
votes

Utilisation de Méthode d'extension Enumérable.Tary () Vous pouvez DO:

var guidArray = MyList.ToArray();


0 commentaires

5
votes

La nouvelle voie (à l'aide d'extensions ou de la méthode toarray () sur les listes génériques de .NET 2.0):

Guid[] guidArray = new guidArray[MyList.Length];
int idx = 0;
foreach (var guid in MyList)
{
    guidArray[idx++] = guid;
}


1 commentaires

C # 2.0 a list.toarray , qui utilise system.array.copy



5
votes

Une autre option, en plus de GUID [] MyARRAY = MYLIST.TOARRAY () CODE>:

Guid[] MyArray = new Guid[MyList.Count]; // or wherever you get your array from
MyList.CopyTo(MyArray, 0);


0 commentaires