scan read for files example delete c# arrays long-filenames

c# - read - ¿Cómo agregar una cadena a una cadena[]? No hay función.Add



read file c# (12)

¿Por qué no usas un bucle for en lugar de usar foreach? En este escenario, no hay forma de que pueda obtener el índice de la iteración actual del ciclo foreach.

El nombre del archivo se puede agregar a la cadena [] de esta manera,

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

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; }

Me gustaría convertir FI.Name a una cadena y luego agregarlo a mi matriz. ¿Cómo puedo hacer esto?


Alternativamente, puede cambiar el tamaño de la matriz.

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


Así es como lo agrego a una cadena cuando sea necesario:

string[] myList; myList = new string[100]; for (int i = 0; i < 100; i++) { myList[i] = string.Format("List string : {0}", i); }


Eazy

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


Este código funciona muy bien para preparar los valores dinámicos Array for spinner en Android:

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


No puede agregar elementos a una matriz, ya que tiene longitud fija, lo que está buscando es una List<string> , que luego puede convertirse en una matriz usando list.ToArray() .


No usaría una matriz en este caso. En cambio, usaría una StringCollection.

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


Si no me equivoco es:

MyArray.SetValue(ArrayElement, PositionInArray)


Use List <T> de System.Collections.Generic

List<string> myCollection = new List<string>(); … myCollection.Add(aString);

Si realmente quieres una matriz al final, usa

myCollection.ToArray();

Tal vez sea mejor que abstraigas a una interfaz, como IEnumerable, y luego solo devuelvas la colección.

Editar: si debe usar una matriz, puede preasignarla al tamaño correcto (es decir, la cantidad de información de archivo que tiene). Luego, en el ciclo foreach, mantenga un contador para el índice de matriz que necesita actualizar a continuación.

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


para borrar la matriz y hacer que el número de sus elementos = 0 al mismo tiempo, use esto ...

System.Array.Resize(ref arrayName, 0);


string[] MyArray = new string[] { "A", "B" }; MyArray = new List<string>(MyArray) { "C" }.ToArray(); //MyArray = ["A", "B", "C"]


string[] coleccion = Directory.GetFiles(inputPath) .Select(x => new FileInfo(x).Name) .ToArray();