如何从IEnumerable <string>创建List <fileinfo>?

时间:2017-01-08 21:10:58

标签: c# .net winforms

private void getTotalBytes(IEnumerable<string> urls)
{
     files = new List<FileInfo>(urls.Count());

例如,网址数量为399。 但是当我使用断点并点击F11时,我发现文件数为0。

2 个答案:

答案 0 :(得分:3)

使用new List<FileInfo>(urls.Count());创建一个预期容量为399的空列表。因此,文件数为0。

下一步是用实际的FileInfo对象填充列表; e.g。

private void getTotalBytes(IEnumerable<string> urls)
{
    files = new List<FileInfo>(urls.Count());
    foreach (var url in urls)
    {
         files.Add(new FileInfo(url));
    }

或与Linq

private void getTotalBytes(IEnumerable<string> urls)
{
    files = urls.Select(u => new FileInfo(u)).ToList();

答案 1 :(得分:0)

直接回答你的问题:

var files = new List<FileInfo>();
foreach(var file in myEnumerableStringCollection)
{
    files.Add(new FileInfo(file));
}

但是,您的示例变量是&#39; urls&#39;所以我怀疑你是否试图用这个来做更多的事情。