如何添加一个字符串转换为String []数组? 有没有。新增功能(How to add a s

2019-07-18 10:27发布

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为字符串,然后将其添加到我的阵列。 我怎样才能做到这一点?

Answer 1:

你无法将项目添加到一个数组,因为它有固定的长度,你要找的是一个List<string> ,以后可以变成一个数组使用list.ToArray()



Answer 2:

或者,你可以调整阵列。

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


Answer 3:

使用列表<T>从System.Collections.Generic

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


Answer 4:

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();


Answer 5:

如果我没有记错的话,它是:

MyArray.SetValue(ArrayElement, PositionInArray)


Answer 6:

这就是我需要的时候添加到字符串:

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


Answer 7:

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


Answer 8:

你为什么不使用for循环,而不是使用的foreach。 在这种情况下,没有办法,你可以得到foreach循环的当前迭代的索引。

该文件的文件名可以被添加到字符串[]以这种方式,

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


Answer 9:

此代码为准备在Android的微调动态值数组的伟大工程:

    List<String> yearStringList = new ArrayList<>();
    yearStringList.add("2017");
    yearStringList.add("2018");
    yearStringList.add("2019");


    String[] yearStringArray = (String[]) yearStringList.toArray(new String[yearStringList.size()]);


Answer 10:

我不会在这种情况下使用数组。 相反,我会用一个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;
}


Answer 11:

以清除阵列并使它的元素的0数=在同一时间,使用这个..

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


Answer 12:

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


Answer 13:

添加LINQ到一个参考using System.Linq; 和使用所提供的扩展方法Appendpublic static IEnumerable<TSource> Append<TSource>(this IEnumerable<TSource> source, TSource element)然后,你需要将其转换回string[]使用.ToArray()方法。

这是可能的,因为型string[]实现IEnumerable ,它也实现了以下接口: IEnumerable<char>IEnumerableIComparableIComparable<String>IConvertibleIEquatable<String>ICloneable

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


文章来源: How to add a string to a string[] array? There's no .Add function