C# 如何使用IEnumerable<;字符串>;作为名单? var ext=new List{.jpg“,.gif“,.png”}; var myFiles=Directory.GetFiles(目录“***”,SearchOption.AllDirectories) 。其中(s=>ext.Any(e=>s.EndsWith(e)); CopyFilesToClipBoard()

C# 如何使用IEnumerable<;字符串>;作为名单? var ext=new List{.jpg“,.gif“,.png”}; var myFiles=Directory.GetFiles(目录“***”,SearchOption.AllDirectories) 。其中(s=>ext.Any(e=>s.EndsWith(e)); CopyFilesToClipBoard(),c#,.net,winforms,C#,.net,Winforms,以及CopyFilesToClipBoard()方法 public静态字符串[]CopyFilesToClipBoard(列表文件\u列表) { foreach(字符串文件\目录.GetFiles(Application.StartupPath)中的名称) 文件列表。添加(文件名); 剪贴板。清除(); 剪贴板.SetData(DataFormats.FileDrop,file_list.ToArray()); 字符串[]文件名=(字符串[]) Clipboard.GetData(DataFor

以及CopyFilesToClipBoard()方法

public静态字符串[]CopyFilesToClipBoard(列表文件\u列表)
{
foreach(字符串文件\目录.GetFiles(Application.StartupPath)中的名称)
文件列表。添加(文件名);
剪贴板。清除();
剪贴板.SetData(DataFormats.FileDrop,file_list.ToArray());
字符串[]文件名=(字符串[])
Clipboard.GetData(DataFormats.FileDrop);
返回文件名;
}

问题是CopyFilesToClipBoard应该获取列表,但var myFiles是IEnumerable

您可以调用
ToList
方法:

public static string[] CopyFilesToClipBoard(List<string> file_list)
{
    foreach (string file_name in Directory.GetFiles(Application.StartupPath))
        file_list.Add(file_name);
    Clipboard.Clear();
    Clipboard.SetData(DataFormats.FileDrop, file_list.ToArray());
    string[] file_names = (string[])
    Clipboard.GetData(DataFormats.FileDrop);
    return file_names;
}

您可以调用
ToList
方法:

public static string[] CopyFilesToClipBoard(List<string> file_list)
{
    foreach (string file_name in Directory.GetFiles(Application.StartupPath))
        file_list.Add(file_name);
    Clipboard.Clear();
    Clipboard.SetData(DataFormats.FileDrop, file_list.ToArray());
    string[] file_names = (string[])
    Clipboard.GetData(DataFormats.FileDrop);
    return file_names;
}

您的
CopyFilesToClipboard
方法似乎有两个目的——它将启动路径中的文件添加到列表中,并将内容复制到剪贴板。我强烈建议您将两者分开。您的
CopyFilesToClipboard
方法似乎有两个目的-它将启动路径中的文件添加到列表中,并将内容复制到剪贴板。我强烈建议你把两者分开。
CopyFilesToClipBoard(myFiles.ToList());