类型'System.Collections.Generic.IEnumerable & lt; string>

本文关键字:string lt IEnumerable Collections System 类型 Generic | 更新日期: 2023-09-27 18:15:34

我有一个问题,我认为你可以帮助我,我有这个代码:

string[] A1 = 
    Directory
        .GetFileSystemEntries(textbox2_f2.Text, "*", SearchOption.AllDirectories)
        .Select(System.IO.Path.GetFileName);
for (int i1 = 0; i1 < A1.Length; i1++)
    listbox_2f.Items.Add(A1[i1]);

错误如下:

类型'System.Collections.Generic.IEnumerable '不能是隐式转换为'string[]'。已经有一个明确的转换存在。

我该如何解决这个问题?

类型'System.Collections.Generic.IEnumerable & lt; string>

尝试:

Directory.GetFileSystemEntries(textbox2_f2.Text, "*", SearchOption.AllDirectories)
    .Select(System.IO.Path.GetFileName)
    .ToArray()

代码:

Directory.GetFileSystemEntries(textbox2_f2.Text, "*", SearchOption.AllDirectories)

返回一个string[],它是great

然后在上面放一个SelectSelect返回一个IEnumerable,不能直接赋值给数组。

您可以调用ToArray()并按原样使用,但您也可以更直接地使用IEnumerable(并节省转换所需的一点时间)。

//A1 will be IEnumerable<String>
var A1 = Directory.GetFileSystemEntries(textbox2_f2.Text, "*", SearchOption.AllDirectories)
    .Select(System.IO.Path.GetFileName);
foreach (var a in A1)
{
    listbox_2f.Items.Add(a);
}