0

我需要将字符串项添加到列表中。我总共得到了大约 25 个项目。这将导致我重复将其添加到列表中。有没有人有任何方法可以添加到列表中而无需制作很长的相同代码行?

 List<Raster> myRasterlist = new List<Raster>();


        // Get the file name
        string filepath = @"C:\Users\User\Desktop\User Stuff\Map Data\RASTER\3069.tif";
        myRasterlist.Add(new Raster(filepath));

        filepath = @"C:\Users\User\Desktop\User Stuff\Map Data\RASTER\3169.tif";
        myRasterlist.Add(new Raster(filepath));

        filepath = @"C:\Users\User\Desktop\User Stuff\Map Data\RASTER\3265.tif";
        myRasterlist.Add(new Raster(filepath));

        filepath = @"C:\Users\User\Desktop\User Stuff\Map Data\RASTER\4357.tif";
        myRasterlist.Add(new Raster(filepath));
4

2 回答 2

1
using System.IO;
...    

List<Raster> myRasterlist = new List<Raster>();

    foreach (string filepath in Directory.EnumerateFiles(folderPath, "*.tif"))
    {
      myRasterlist.Add(new Raster(filepath));
    }
  • 我假设每个文件都在同一个文件夹中
于 2019-02-21T04:24:29.640 回答
1

假设所有图像都位于同一目录中,您可以使用Directory.EnumerateFiles搜索掩码,然后将结果投影到List

返回满足指定条件的文件名的可枚举集合。

var myRasterlist = Directory.EnumerateFiles(dir, "*.tiff", SearchOption.TopDirectoryOnly)
                            .Select(file => new Raster(x));

// or

var myRasterlist = Directory.EnumerateFiles(dir)
                            .Select(file => new Raster(x));
于 2019-02-21T04:25:12.360 回答