首页 > 解决方案 > 当我没有创建类型时,C# 如何访问这个通用列表?

问题描述

我已经完成了第一部分并且工作正常。我的列表以 As 结尾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].?)
}

标签: c#list

解决方案


由于最后 Select返回string(x.Name是 类型string)

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

thenfileName是类型List<string>,您不需要任何其他方法:

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

我建议摆脱并让(在.Netfor loop的帮助下)为您工作:foreach

// 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()枚举名称而不将它们保存到任何集合中(例如)。foreachList<string>


推荐阅读