匿名类型范围问题

Jar*_*red 6 c# scope anonymous-objects

创建一个变量的正确方法是什么,该变量将包含一段匿名对象,这些匿名对象是通过一段LINQ query时间生成的,将变量声明保持在a之外,try/catch并且赋值是在try/catch

目前我正在声明变量为IEnumberable<object>,但是当我稍后尝试使用它时,这会导致一些问题......

var variableDeclaration;
try{
    ...
    assignment
    ...
}catch...
Run Code Online (Sandbox Code Playgroud)

编辑:

如果它是相关的(不认为是),则作为JsonMVC3动作的结果返回对象列表.我正在尝试减少一些using语句在DB中打开的时间,因为我遇到了一些性能问题,我正试图清理一下.在进行一些测试时,我遇到了这个问题,似乎无法找到相关信息.

编辑2:

如果我可以请求避免关注LINQ.在使用LINQ时,问题更具体于与Anonymous对象相关的范围问题.不是使用LINQ(在这种情况下)生成它们的事实.

此外,一些答案提到了使用dynamic虽然这将编译它不允许我以后需要的方法的用法.如果我想要做的事情是不可能的,那么目前答案似乎是class用我需要的定义创建一个新的并使用它.

Dav*_*ych 4

可以通过创建Jon Skeet此处Cast概述的通用方法来解决此问题。它会起作用并为您提供您想要的智能感知。但是,此时,为 linq 方法创建自定义类型有什么问题呢?

public class MyClass
{
    public int MyInt { get; set; }
}

IEnumerable<MyClass> myClass = 
    //Some Linq query that returns a collection of MyClass
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

1092 次

最近记录:

12 年,3 月 前