只是想知道我将如何让这样的事情起作用?
void EditListUpdate(int id)
{
string[] editListMod = modules.Where(x => x.Id == id).ToArray();
}
模块是一个列表。
问题是方法返回的类型。
您可以通过声明显式使用
Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
或通过魔术词使用超级漂亮的 c# 类型推断:
var editListMod = modules.Where(x => x.Id == id).ToArray();
modules
是Module
您的代码中的类型。您editListMod
是 type string[]
,因此编译器告诉您它不能将其隐式转换为 type Module[]
。要解决此问题,请尝试:
Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
假设您发布的是您的实际代码,那么您在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
from的类型更改string[]
为stageManagement.Module[]
。您的 LINQ 语句将选择stageManagement.Module
具有匹配 ID 的所有对象。
换句话说:
Module[] editListMod = modules.Where(x => x.Id == id).ToArray();