【发布时间】:2016-05-31 14:48:07
【问题描述】:
匿名类型有一个奇怪的问题。让我们直接进入我的代码:
var anon = new[]
{
new { Var1 = 20, Var2 = 40, Var3 = 70 },
new { Var1 = 25, Var2 = 45, Var3 = 75 }
};
// found should be of type { int Var1, int Var2, int Var3 }
var found = anon.Select(x => x).Where(x => x.Var1 == 25);
var test = found.Var1 // <-- not defined error here
很简单的问题:
为什么我使用 linq select 后无法访问Var1?
对不起这个话题,想不出更好的描述。
【问题讨论】:
-
在这种情况下,编译器必须生成一条错误消息,解释为什么
Var1不可用 -
我犯的愚蠢错误。甚至不能删除,因为已经有答案了。
-
仅供参考。
Select(x => x)这里不需要(或者真的不需要)。 -
短版:
var found = anon.First(x => x.Var1 == 25); -
@C4ud3x 您唯一需要它的时候是您将查询实际投影到不同的
Select(x => x.Something),或者您正在使用查询语法from x in stuff where x.Y = 1 select x;
标签: c# linq anonymous-types