C# 列表泛型IEnumerable具有一些无效参数

C# 列表泛型IEnumerable具有一些无效参数,c#,list,generics,C#,List,Generics,我正在努力改进我的程序,该程序目前构建了一个字符串的通用列表,如下所示: List<string> fileList = new List<string>(Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories)); List fileList=新列表(Directory.GetFiles(root“*.xml”、SearchOption.AllDirectories)); 到不同的通用列表,希望更

我正在努力改进我的程序,该程序目前构建了一个字符串的通用列表,如下所示:

 List<string> fileList = new List<string>(Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories));
List fileList=新列表(Directory.GetFiles(root“*.xml”、SearchOption.AllDirectories));
到不同的通用列表,希望更灵活:

List<InputFileInfo> fileList = List<InputFileInfo>(Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories));

 public class InputFileInfo
{
    public string _fullPath { get; set; }
    public string _Message { get; set; }
    public int _RowCount { get; set; }
    public InputFileInfo(string fName)
    {
        _fullPath = fName;
        _RowCount = 0;
        _Message = String.Empty;
    }
}
List fileList=List(Directory.GetFiles(root,*.xml),SearchOption.AllDirectories));
公共类InputFileInfo
{
公共字符串_fullPath{get;set;}
公共字符串_消息{get;set;}
公共int_RowCount{get;set;}
公共输入文件信息(字符串fName)
{
_fullPath=fName;
_行数=0;
_Message=String.Empty;
}
}
Directory.GetFiles返回一个字符串数组,我想我的InputFileInfo构造函数是不够的。我是否需要循环遍历字符串数组并使用.GetFiles数组的每个元素的.Add方法填充列表,或者是否有一种方法可以像字符串列表那样在一条语句中填充我的新列表?

是-理想情况下使用:

如果您还没有遇到LINQ,我强烈建议您详细了解它。这是这类事情的理想选择。

是-理想情况下:

如果您还没有遇到LINQ,我强烈建议您详细了解它。非常适合这种情况。

您可以使用将每个字符串转换为InputFileInfo对象,并将生成的IEnumerable转换为列表:

可以使用将每个字符串转换为InputFileInfo对象,并使用将生成的IEnumerable转换为列表:

您可以使用:

var files = Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories);
var fileInfoList = files.Select(x => new InputFileInfo(x)).ToList();
Select()
将每个字符串投影到您类型的相应对象上。

您可以使用:

var files = Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories);
var fileInfoList = files.Select(x => new InputFileInfo(x)).ToList();

Select()
将每个字符串投影到相应类型的对象上。

如果使用.NET 3.5或更高版本,则可以使用LINQ

Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories).Select(i => new InputFileInfo
(i)).ToList();

如果您使用的是.NET3.5或更高版本,则可以使用LINQ

Directory.GetFiles(root, "*.xml", SearchOption.AllDirectories).Select(i => new InputFileInfo
(i)).ToList();

嗯,字符串数组与
列表
完全不同。您甚至需要列表吗?我敢打赌,只要坚持使用IEnumerableWell,您就可以过得去并提高性能。字符串数组与
列表
完全不同。您甚至需要列表吗?我打赌你可以通过坚持使用IEnumerablewe来度过难关并提高表现。我们需要一个俱乐部“飞碟赢了我”:我们需要一个俱乐部“飞碟赢了我”:P