linq选择后匿名类型被破坏

C4d*_*C4d -2 c# linq anonymous-types

我有一个匿名类型的奇怪问题.让我们直接进入我的代码:

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
Run Code Online (Sandbox Code Playgroud)

很简单的问题:
为什么我Var1在使用linq选择后无法访问?

对此主题感到抱歉,想不出更好的描述.

Val*_*tin 5

因为Where回报你IEnumerable<>,而不是单个元素.您可以使用FirstFirstOrDefault获取第一个元素.

found.First().Var1
Run Code Online (Sandbox Code Playgroud)