C#当我没有创建类型时,如何访问该通用列表?

时间:2018-06-25 13:59:01

标签: c# list

我已经完成了第一部分,并且可以正常工作。我的列表以fileName[288]结尾,并且在本地窗口中有一个“值”。这是一个清单。我没有创建类型,所以我不知道如何访问它。我知道这是一个通用的字符串列表,因此我导入了S ystem.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].?)
}

1 个答案:

答案 0 :(得分:1)

由于 last Select返回stringx.Name的类型为string

...  
.Select(x => x.Name) // select string(s)
.ToList();           // materialize them into a list

然后fileName的类型为List<string>,并且您不需要任何其他方法:

Console.WriteLine("Filename: {0}", fileName[i]);

我建议您摆脱for loop,让(在foreach的帮助下).Net为您服务:

// 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

编辑:请注意,在.ToList()的情况下,我们不需要foreach-我们想要的只是枚举名称而不将它们保存到任何集合中(例如List<string>)。