0

只是想知道我将如何让这样的事情起作用?

void EditListUpdate(int id)
    {
        string[] editListMod = modules.Where(x => x.Id == id).ToArray();
    }

模块是一个列表。

4

3 回答 3

2

问题是方法返回的类型。

您可以通过声明显式使用

 Module[] editListMod = modules.Where(x => x.Id == id).ToArray();

或通过魔术词使用超级漂亮的 c# 类型推断:

 var editListMod = modules.Where(x => x.Id == id).ToArray();
于 2013-04-21T10:06:26.773 回答
1

modulesModule您的代码中的类型。您editListMod是 type string[],因此编译器告诉您它不能将其隐式转换为 type Module[]。要解决此问题,请尝试:

Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
于 2013-04-21T10:08:22.863 回答
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[]'

您需要将editListModfrom的类型更改string[]stageManagement.Module[]。您的 LINQ 语句将选择stageManagement.Module具有匹配 ID 的所有对象。

换句话说:

Module[] editListMod = modules.Where(x => x.Id == id).ToArray();
于 2013-04-21T10:03:51.457 回答