代码之家  ›  专栏  ›  技术社区  ›  Hooman Bahreini

从第二个list初始化列表

  •  0
  • Hooman Bahreini  · 技术社区  · 6 年前

    我想初始化一个图像列表,从一个文件列表。的构造器 MyImage 接受一个文件。

    有没有较短的方法来初始化图像列表?也许用林肯?

    public List<MyImage> GetImages(string path)
    {
        List<MyImage> images = new List<MyImage>();
        DirectoryInfo di = new DirectoryInfo(path);
        FileInfo[] files = di.GetFiles();
    
        // is there a shorter way to do this?
        foreach (FileInfo fi in files)
        {
            MyImage image = new MyImage(fi);
            images.Add(image);
        }
    
        return images;
    }
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   dcg JL0PD    6 年前

    您可以返回 IEnumerable<MyImage> 把你的代码转换成

    public IEnumerable<MyImage> GetImages(string path)
    {
        DirectoryInfo di = new DirectoryInfo(path);
        FileInfo[] files = di.GetFiles();
    
        return files.Select(fi => new ImageUpload(fi));
    }
    

    请注意,您仍然可以返回 List<MyImage> ,只需申请 .ToList() 如果是这样的话。

        2
  •  0
  •   Noisy88    6 年前

    取而代之的是每次尝试:

    files.Select(f=> new MyImage(f)).ToList();
    

    如果需要某些条件,请尝试以下操作:

    files.Where(f=> f.Name.Contains(".jpg"))
    .Select(f=> new MyImage(f)).ToList();