C# 在C中的字符串[]数组中插入字符串#

C# 在C中的字符串[]数组中插入字符串#,c#,arrays,string,C#,Arrays,String,我对字符串[]数组有一个问题。我不知道如何在字符串[]中插入字符串。我不能给它分配任何数组。但是我需要按照要求插入字符串。所以这有一个动态长度。我是新来的,所以我不知道。所以请让我知道,如何设置这个 我在一些动态文件夹中有一些文件,我想在string[]数组中插入这些名称。所以我创建了从目录中读取文件的逻辑。现在我想一个接一个地插入这些文件名。由于数组具有固定长度,因此不能向数组中添加项,或者您可以选择列表 要将列表转换为数组,只需调用List.ToArray()。由于数组具有固定长度,所以不能

我对字符串[]数组有一个问题。我不知道如何在字符串[]中插入字符串。我不能给它分配任何数组。但是我需要按照要求插入字符串。所以这有一个动态长度。我是新来的,所以我不知道。所以请让我知道,如何设置这个


我在一些动态文件夹中有一些文件,我想在string[]数组中插入这些名称。所以我创建了从目录中读取文件的逻辑。现在我想一个接一个地插入这些文件名。

由于数组具有固定长度,因此不能向数组中添加项,或者您可以选择
列表


要将列表转换为数组,只需调用
List.ToArray()。

由于数组具有固定长度,所以不能向数组中添加项,或者可以选择
List


要将列表转换为数组,只需调用
List.ToArray()。

数组不能动态添加到。您需要创建一个新数组并复制到其中


如果需要动态添加到集合中,最好使用
列表而不是数组。

数组不能动态添加到集合中。您需要创建一个新数组并复制到其中


如果需要动态添加到集合,最好使用
列表而不是数组。

GetDirectories
已返回字符串数组。因此,由于您实际上不需要知道阵列有多大,您应该能够

string[]myVariable=dir.GetDirectories()


然后
myVariable
的长度将与目录中的子目录数相同。但是请注意,由于数组的长度是固定的,因此无法向该数组添加更多内容。

GetDirectories
已返回字符串数组。因此,由于您实际上不需要知道阵列有多大,您应该能够

string[]myVariable=dir.GetDirectories()


然后
myVariable
的长度将与目录中的子目录数相同。但是请注意,由于数组的长度是固定的,因此您将无法向该数组添加更多内容。

这里有一些选项。首先,请澄清您使用的方法。GetDirectories(string)返回一个字符串数组,其中包含传递给方法的路径中文件夹中包含的文件夹路径。此数组不包含文件路径或文件名。您可以使用DirectoryInfo的实例,例如:

DirectoryInfo directory = new DirectoryInfo("my path to directory");

DirectoryInfo[] subDirectories = directory.GetDirectories();
这将返回目录中包含的子目录,路径为DirectoryInfo构造函数中使用的路径

至于一般的阵列;不能将元素添加到数组中,因为数组具有固定长度,但是静态数组类中有一个方法,可以使用该方法重新调整大小,然后在必要的索引处插入新值(这确实会从后端创建一个新数组,并从以前的数组中为其分配指定的长度和值,但在这种情况下,您不需要跟踪用户代码中的多个数组变量,这有助于在我看来更容易记住)但是,如果你打算定期这样做,你最好使用另一种类型,如列表

如果您想要文件名,如myTextFile.txt,而不是完整路径,您可以使用一点Linq,例如:

DirectoryInfo directory = new DirectoryInfo("my path to directory");

List<string> myFileNames = directory.GetFiles().Select(c => c.Name).ToList();
DirectoryInfo directory=newdirectoryinfo(“我的目录路径”);
列出myFileNames=directory.GetFiles().Select(c=>c.Name.ToList();
这将返回一个字符串列表,即目录中的文件名,路径为您在DirectoryInfo构造函数中使用的路径


通过将directory.GetFiles()替换为directory.GetDirectories(),然后附加Select()和ToList(),您可以在获取目录名时执行相同的操作。

这里有几个选项。首先,请澄清您使用的方法。directory.GetDirectories(string)返回一个字符串数组,其中包含传递给方法的路径中文件夹中包含的文件夹路径。此数组不包含文件路径或文件名。您可以使用DirectoryInfo的实例,例如:

DirectoryInfo directory = new DirectoryInfo("my path to directory");

DirectoryInfo[] subDirectories = directory.GetDirectories();
这将返回目录中包含的子目录,路径为DirectoryInfo构造函数中使用的路径

一般来说,对于数组,不能将元素添加到数组中,因为数组具有固定的长度,但是静态数组类中有一个方法,可以使用该方法重新调整大小,然后在必要的索引处插入新值(这确实会从后端创建一个新数组,并从以前的数组中为其分配指定的长度和值,但在这种情况下,您不需要跟踪用户代码中的多个数组变量,这有助于在我看来更容易记住)但是,如果你打算定期这样做,你最好使用另一种类型,如列表

如果您想要文件名,如myTextFile.txt,而不是完整路径,您可以使用一点Linq,例如:

DirectoryInfo directory = new DirectoryInfo("my path to directory");

List<string> myFileNames = directory.GetFiles().Select(c => c.Name).ToList();
DirectoryInfo directory=newdirectoryinfo(“我的目录路径”);
列出myFileNames=directory.GetFiles().Select(c=>c.Name.ToList();
这将返回一个字符串列表,即目录中的文件名,路径为您在DirectoryInfo构造函数中使用的路径


通过将directory.GetFiles()替换为directory.GetDirectories(),然后附加Select()和ToList(),您可以对获取目录名执行相同的操作。

在一体式解决方案中,这可以总结如下 注意:如上所述,数组的长度是固定的,因此不能动态地包含它们的长度

// Include IO, Linq namespace
using System.IO;
using System.Linq;

// To search files in a directory and collect in a collection
var directoryPath = "";
var fileNameList = Directory.GetFiles(directoryPath,"*.*", SearchOption.AllDirectories).ToList().Select(e=>Path.GetFileName(e));

// Casting the List to Array using ToArray()
var fileNameArray = fileNameList.ToArray();

在一体式解决方案中,这可以总结如下 注意:如上所述,数组的长度是固定的,因此不能动态地包含它们的长度

// Include IO, Linq namespace
using System.IO;
using System.Linq;

// To search files in a directory and collect in a collection
var directoryPath = "";
var fileNameList = Directory.GetFiles(directoryPath,"*.*", SearchOption.AllDirectories).ToList().Select(e=>Path.GetFileName(e));

// Casting the List to Array using ToArray()
var fileNameArray = fileNameList.ToArray();

如果需要动态长度,请使用