Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从第二个llist初始化列表_C#_Linq - Fatal编程技术网

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的实例将不会在那里实际执行。如果重用该实例,它将在每次需要列表时创建一个新列表(并获取新文件等)。