只是想知道如何让这样的东西起作用?
void EditListUpdate(int id)
{
string[] editListMod = modules.Where(x => x.Id == id).ToArray();
}
模块是一个列表。
答案 0 :(得分:2)
问题是方法返回的类型。
您可以通过声明
明确使用 Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
或使用魔术词的超好c#类型推断:
var editListMod = modules.Where(x => x.Id == id).ToArray();
答案 1 :(得分:1)
假设您发布的内容是您的实际代码,则错过了ToArray
上的括号。 ToArray()
是方法调用。
string[] editListMod = modules.Where(x => x.Id == id).ToArray();
这应解决您看到的错误(Cannot convert method group 'ToArray' to non-delegate type 'string[]'. Did you intend to invoke the method?
)
<强>更新强>
您是新错误:Cannot implicitly convert type 'stageManagement.Module[]' to string[]'
您需要将editListMod
的类型从string[]
更改为stageManagement.Module[]
。您的LINQ语句将选择具有匹配ID的所有stageManagement.Module
个对象。
换句话说:
Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
答案 2 :(得分:1)
modules
在您的代码中属于Module
类型。您的editListMod
类型为string[]
,因此编译器会告诉您它无法将其隐式转换为Module[]
类型。要解决此问题,请尝试:
Module[] editListMod = modules.Where(x => x.Id == id).ToArray();