Comment append une chaîne à un tableau ssortingng ? Il n’y a pas de fonction .Add

private ssortingng[] ColeccionDeCortes(ssortingng Path) { DirectoryInfo X = new DirectoryInfo(Path); FileInfo[] listaDeArchivos = X.GetFiles(); ssortingng[] Coleccion; foreach (FileInfo FI in listaDeArchivos) { //Add the FI.Name to the Coleccion[] array, } return Coleccion; } 

Je voudrais convertir le FI.Name en une chaîne et l’append à mon tableau. Comment puis-je faire ceci?

Vous ne pouvez pas append d’éléments à un tableau, car il a une longueur fixe, ce que vous recherchez est un List , qui peut ensuite être transformé en un tableau en utilisant list.ToArray() .

Vous pouvez également redimensionner le tableau.

 Array.Resize(ref array, array.Length + 1); array[array.Length - 1] = "new ssortingng"; 

Utilisez la liste de System.Collections.Generic

 List myCollection = new List(); … myCollection.Add(aSsortingng); 

Si vous voulez vraiment un tableau à la fin, utilisez

 myCollection.ToArray(); 

Vous feriez peut-être mieux de vous limiter à une interface, telle que IEnumerable, puis de simplement renvoyer la collection.

Edit: Si vous devez utiliser un tableau, vous pouvez le pré-allouer à la bonne taille (c.-à-d. Le nombre de FileInfo que vous avez). Ensuite, dans la boucle foreach, conservez un compteur pour l’index du tableau que vous devez mettre à jour ensuite.

 private ssortingng[] ColeccionDeCortes(ssortingng Path) { DirectoryInfo X = new DirectoryInfo(Path); FileInfo[] listaDeArchivos = X.GetFiles(); ssortingng[] Coleccion = new ssortingng[listaDeArchivos.Length]; int i = 0; foreach (FileInfo FI in listaDeArchivos) { Coleccion[i++] = FI.Name; //Add the FI.Name to the Coleccion[] array, } return Coleccion; } 

Eazy

 // Create list var myList = new List(); // Add items to the list myList.Add("item1"); myList.Add("item2"); // Convert to array var myArray = myList.ToArray(); 

Si je ne me trompe pas c’est:

 MyArray.SetValue(ArrayElement, PositionInArray) 

Voici comment j’ajoute une chaîne lorsque cela est nécessaire:

 ssortingng[] myList; myList = new ssortingng[100]; for (int i = 0; i < 100; i++) { myList[i] = string.Format("List string : {0}", i); } 
 ssortingng[] coleccion = Directory.GetFiles(inputPath) .Select(x => new FileInfo(x).Name) .ToArray(); 

Pourquoi n’utilisez-vous pas une boucle for au lieu d’utiliser foreach. Dans ce scénario, vous ne pouvez pas obtenir l’index de l’itération en cours de la boucle foreach.

Le nom du fichier peut être ajouté à la chaîne [] de cette manière,

 private ssortingng[] ColeccionDeCortes(ssortingng Path) { DirectoryInfo X = new DirectoryInfo(Path); FileInfo[] listaDeArchivos = X.GetFiles(); ssortingng[] Coleccion=new ssortingng[listaDeArchivos.Length]; for (int i = 0; i < listaDeArchivos.Length; i++) { Coleccion[i] = listaDeArchivos[i].Name; } return Coleccion; } 

Ce code fonctionne très bien pour préparer les valeurs dynamics Array pour spinner dans Android:

  List yearSsortingngList = new ArrayList<>(); yearStringList.add("2017"); yearStringList.add("2018"); yearStringList.add("2019"); String[] yearStringArray = (String[]) yearStringList.toArray(new String[yearStringList.size()]); 

Je ne voudrais pas utiliser un tableau dans ce cas. Au lieu de cela, j’utiliserais un SsortingngCollection.

 using System.Collections.Specialized; private SsortingngCollection ColeccionDeCortes(ssortingng Path) { DirectoryInfo X = new DirectoryInfo(Path); FileInfo[] listaDeArchivos = X.GetFiles(); SsortingngCollection Coleccion = new SsortingngCollection(); foreach (FileInfo FI in listaDeArchivos) { Coleccion.Add( FI.Name ); } return Coleccion; } 

pour effacer le tableau et faire le nombre de ses éléments = 0 en même temps, utilisez ceci ..

 System.Array.Resize(ref arrayName, 0); 
 ssortingng[] MyArray = new ssortingng[] { "A", "B" }; MyArray = new List(MyArray) { "C" }.ToArray(); //MyArray = ["A", "B", "C"] 

Ajouter une référence à Linq en using System.Linq; et utilisez la méthode d’extension fournie Append : public static IEnumerable Append(this IEnumerable source, TSource element) Ensuite, vous devez le reconvertir en ssortingng[] à l’aide de la méthode .ToArray() .

Il est possible, car le type ssortingng[] implémente IEnumerable , il implémente également les interfaces suivantes: IEnumerable , IEnumerable , IComparable , IComparable , IConvertible , IEquatable , ICloneable

 using System.Linq; public ssortingng[] descriptionSet new ssortingng[] {"yay"}; descriptionSet = descriptionSet.Append("hooray!").ToArray();