如何将string添加到string数组? 没有.Addfunction
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; }
我想将FI.Name
转换为一个string,然后将其添加到我的数组。 我怎样才能做到这一点?
您不能将项目添加到数组中,因为它具有固定的长度,您要查找的是List<string>
,稍后可以使用list.ToArray()
将其转换为数组。
或者,您可以调整数组的大小。
Array.Resize(ref array, array.Length + 1); array[array.Length - 1] = "new string";
使用System.Collections.Generic中的List <T>
List<string> myCollection = new List<string>(); … myCollection.Add(aString);
如果你真的想在最后一个数组,使用
myCollection.ToArray();
你可能会更好的抽象为一个接口,比如IEnumerable,然后返回集合。
编辑:如果你必须使用一个数组,你可以预先分配到正确的大小(即你有的FileInfo的数量)。 然后,在foreach循环中,为下一个需要更新的数组索引维护一个计数器。
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();
如果我没有弄错它是:
MyArray.SetValue(ArrayElement, PositionInArray)
string[] coleccion = Directory.GetFiles(inputPath) .Select(x => new FileInfo(x).Name) .ToArray();
这是我需要时添加到string的方式:
string[] myList; myList = new string[100]; for (int i = 0; i < 100; i++) { myList[i] = string.Format("List string : {0}", i); }
为什么不使用for循环而不是使用foreach。 在这种情况下,你不可能得到foreach循环当前迭代的索引。
文件名可以通过这种方式添加到string[]中,
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; }
在这种情况下,我不会使用数组。 相反,我会使用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; }
此代码非常适合在Android中为微调器准备dynamic值Array:
List<String> yearStringList = new ArrayList<>(); yearStringList.add("2017"); yearStringList.add("2018"); yearStringList.add("2019"); String[] yearStringArray = (String[]) yearStringList.toArray(new String[yearStringList.size()]);
清除数组,并使其元素数= 0,同时使用这个..
System.Array.Resize(ref arrayName, 0);