private string[] ColeccionDeCortes(string Path)
{
DirectoryInfo X = new DirectoryInfo(Path);
FileInfo[] listaDeArchivos = X.GetFiles();
string[] 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, puis l'ajouter à mon tableau. Comment puis-je faire ceci?
c#
arrays
long-filenames
Sergio Tapia
la source
la source
Vous pouvez également redimensionner le tableau.
la source
Array.Resize
est la bonne façon de redimensionner un tableau. Si vous ajoutez un commentaire avant l'extrait de code indiquant que c'est rarement la meilleure façon de gérer les situations où le tableau représente une collection redimensionnable, vous obtenez un +1. :)Utilisez List <T> de System.Collections.Generic
Ou, sténographie (en utilisant l'initialiseur de collection):
Si vous voulez vraiment un tableau à la fin, utilisez
Vous feriez mieux de résumer une interface, comme IEnumerable, puis de simplement renvoyer la collection.
Modifier: si vous devez utiliser un tableau, vous pouvez le préallouer à la bonne taille (c'est-à-dire le nombre de FileInfo que vous avez). Ensuite, dans la boucle foreach, conservez un compteur pour l'index de tableau que vous devez mettre à jour ensuite.
la source
Eazy
la source
Add
nonadd
.Si je ne me trompe pas, c'est:
la source
Voici comment j'ajoute à une chaîne en cas de besoin:
la source
la source
Pourquoi n'utilisez-vous pas une boucle for au lieu d'utiliser foreach. Dans ce scénario, il est impossible d'obtenir l'index de l'itération actuelle de la boucle foreach.
Le nom du fichier peut être ajouté à la chaîne [] de cette façon,
la source
listaDeArchivos
. Si vous ne le faites pas (c.-à-d. Si cela pourrait changer et qu'il serait complexe de faire un décompte à l'avance parce que vos objets sont des modèles imbriqués ou des champs de modèle qui peuvent / peuvent ne pas être remplis, par exemple) et que vous voulez simplement le fairestring[] Coleccion;
puis attribuez-le commeint idx = 0; Coleccion[idx] = fileName; idx++;
, il vous le diraUse of unassigned local variable 'Coleccion'
. Juste pour info pour quiconque souhaite adapter cela pour être plus dynamique, qu'il y a un piège.Ce code fonctionne très bien pour préparer les valeurs dynamiques Array for spinner dans Android:
la source
pour effacer le tableau et faire le nombre de ses éléments = 0 en même temps, utilisez ceci ..
la source
Je n'utiliserais pas de tableau dans ce cas. Au lieu de cela, j'utiliserais un StringCollection.
la source
la source
Ajout d'une référence à Linq
using System.Linq;
et utilisation de la méthode d'extension fournieAppend
:public static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element)
vous devez ensuite la reconvertir enstring[]
utilisant.ToArray()
méthode.Il est possible, parce que le type
string[]
met en œuvreIEnumerable
, il met également en œuvre les interfaces suivantes:IEnumerable<char>
,IEnumerable
,IComparable
,IComparable<String>
,IConvertible
,IEquatable<String>
,ICloneable
la source