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;
}
I'd seperti untuk mengkonversi FI.Nama
ke string dan kemudian menambahkannya ke saya menginap. Bagaimana saya bisa melakukan ini?
Gunakan Daftar<T> dari Sistem.Koleksi.Generic
List<string> myCollection = new List<string>();
…
myCollection.Add(aString);
Atau, singkatan (menggunakan koleksi initialiser):
List<string> myCollection = new List<string> {aString, bString}
Jika anda benar-benar ingin array pada akhirnya, menggunakan
myCollection.ToArray();
Anda mungkin akan lebih baik mengabstraksi untuk antarmuka, seperti IEnumerable, kemudian hanya kembali koleksi.
Edit: Jika anda harus menggunakan sebuah array, anda dapat preallocate ke ukuran yang tepat (yaitu jumlah FileInfo anda memiliki). Kemudian, dalam foreach loop, menjaga counter untuk indeks array yang anda butuhkan untuk update berikutnya.
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;
}
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();
Mengapa don't anda gunakan untuk loop alih-alih menggunakan foreach. Dalam skenario ini, tidak ada cara anda bisa mendapatkan indeks saat ini iterasi dari loop foreach.
Nama file dapat ditambahkan ke string[] dengan cara ini,
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;
}
Kode ini karya besar untuk mempersiapkan nilai-nilai yang dinamis Array untuk spinner di Android:
List<String> yearStringList = new ArrayList<>();
yearStringList.add("2017");
yearStringList.add("2018");
yearStringList.add("2019");
String[] yearStringArray = (String[]) yearStringList.toArray(new String[yearStringList.size()]);
Menambahkan referensi ke Linq menggunakan Sistem.Linq;
dan menggunakan metode penyuluhan Menambahkan
: public static IEnumerable<Tsumber> Append<Tsumber>(ini IEnumerable<Tsumber> sumber, Tsumber elemen)
Kemudian anda perlu untuk mengubahnya kembali ke string[]
menggunakan .ToArray()
metode.
Hal ini dimungkinkan, karena jenis string[]
menerapkan IEnumerable
, itu juga mengimplementasikan antarmuka berikut: IEnumerable<char>
, IEnumerable
, IComparable
, IComparable<String>
, IConvertible
, IEquatable<String>
, ICloneable
using System.Linq;
public string[] descriptionSet new string[] {"yay"};
descriptionSet = descriptionSet.Append("hooray!").ToArray();
Saya tidak akan menggunakan array dalam kasus ini. Alih-alih, saya akan menggunakan 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;
}