C# 从第二个llist初始化列表
我想从文件列表中初始化图像列表。C# 从第二个llist初始化列表,c#,linq,C#,Linq,我想从文件列表中初始化图像列表。MyImage的构造函数接受一个文件 是否有较短的方法初始化图像列表?也许使用LINQ public List<MyImage> GetImages(string path) { List<MyImage> images = new List<MyImage>(); DirectoryInfo di = new DirectoryInfo(path); FileInfo[] files = di.GetF
MyImage
的构造函数接受一个文件
是否有较短的方法初始化图像列表?也许使用LINQ
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;
}
public List GetImages(字符串路径)
{
列表图像=新列表();
DirectoryInfo di=新的DirectoryInfo(路径);
FileInfo[]files=di.GetFiles();
//有没有较短的方法可以做到这一点?
foreach(文件中的文件信息)
{
MyImage image=新的MyImage(fi);
图片。添加(图片);
}
返回图像;
}
您可以返回一个IEnumerable
并像
public IEnumerable<MyImage> GetImages(string path)
{
DirectoryInfo di = new DirectoryInfo(path);
FileInfo[] files = di.GetFiles();
return files.Select(fi => new ImageUpload(fi));
}
public IEnumerable GetImages(字符串路径)
{
DirectoryInfo di=新的DirectoryInfo(路径);
FileInfo[]files=di.GetFiles();
返回文件。选择(fi=>newimageupload(fi));
}
请注意,您仍然可以返回列表
,如果是这种情况,只需应用.ToList()
。而不是每次尝试:
files.Select(f=> new MyImage(f)).ToList();
如果需要某些条件,请尝试以下方法:
files.Where(f=> f.Name.Contains(".jpg"))
.Select(f=> new MyImage(f)).ToList();
关于images=files,选择(f=>newimageupload(f)).ToList();请注意,如果您是LINQ新手,您应该了解,如果没有
.ToList()
,IEnumerable的实例将不会在那里实际执行。如果重用该实例,它将在每次需要列表时创建一个新列表(并获取新文件等)。