Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C当我没有创建类型时,如何访问此泛型列表?_C#_List - Fatal编程技术网

C# C当我没有创建类型时,如何访问此泛型列表?

C# C当我没有创建类型时,如何访问此泛型列表?,c#,list,C#,List,我已经完成了第一部分,这是正确的。我的列表以文件名[288]结尾,在“我的本地人”窗口中我有一个值。这是一份清单。我没有创建类型,所以我不知道如何访问它。我知道这是一个字符串的通用列表,所以我导入了System.Collections.generic.list,但我似乎无法理解它 var fileName = new DirectoryInfo(text) .GetFiles(".", SearchOption.AllDirectories) .Select(x => x.Na

我已经完成了第一部分,这是正确的。我的列表以文件名[288]结尾,在“我的本地人”窗口中我有一个值。这是一份清单。我没有创建类型,所以我不知道如何访问它。我知道这是一个字符串的通用列表,所以我导入了System.Collections.generic.list,但我似乎无法理解它

var fileName = new DirectoryInfo(text)
   .GetFiles(".", SearchOption.AllDirectories)
   .Select(x => x.Name)
   .ToList();

for (var i = 0; i < fileName.Count; i++)
{
    Console.WriteLine("Filename: {0}", fileName[i].?)
}
因为最后一次选择返回字符串x。名称的类型为字符串

那么fileName是List类型,您不需要任何其他方法:

Console.WriteLine("Filename: {0}", fileName[i]);
我建议您在foreach.Net的帮助下摆脱for循环并让其为您工作:

// we have (potentially) many files' names - let use "fileNames" - plural
var fileNames = new DirectoryInfo(text)
   .GetFiles(".", SearchOption.AllDirectories)
   .Select(x => x.Name);

foreach (var name in fileNames)
    Console.WriteLine($"Filename: {name}"); // string interpolation for readability

编辑:请注意,我们不需要。在foreach的情况下列出-我们只需要枚举名称,而不将其保存到任何集合中,比如列表。

为什么不只是文件名[i]?。Selectx=>x。名称:因为x是字符串类型,所以Console.WriteLineFilename:{0},在写入文件名[i]时文件名[i]。IntelliSense为您提供字符串的所有选项。在本例中,您只需执行fileName[i],因为这是您可能需要的数据。另外,你不应该复制你不懂的粘贴代码。@Camilo Terevinto-我知道,但我做同样事情的代码大约是60行,而不是3行。我一直在努力使它更好,至少现在我知道我真的需要学习泛型。是的,如果你不了解c中的泛型,你不会走得很远。他们很好地解释了基本原理
// we have (potentially) many files' names - let use "fileNames" - plural
var fileNames = new DirectoryInfo(text)
   .GetFiles(".", SearchOption.AllDirectories)
   .Select(x => x.Name);

foreach (var name in fileNames)
    Console.WriteLine($"Filename: {name}"); // string interpolation for readability