【发布时间】:2012-02-01 16:44:13
【问题描述】:
我正在将一个表加入到内存列表中,并希望从结果中创建一个匿名类型。我已经将 2 个数据源连接在一起了,但我不确定在匿名类型中使用内存列表中的属性所需的语法。
这是我的代码
public DataKeys(IEnumerable<Element> elements)
{
var defsource = new DefinitionSource();
var items = from def in defsource.Definitions
where elements.Select(el=> el.Value).Contains(def.Name)
select new { def.Key };
...
}
(显然“elements”是内存中的元素列表,而“DefinitionSource”是表格的包装器。)这很好用,但是正如您所见,内存中的元素列表中没有属性。这个我试过了
var items = from def in defsource.Definitions
where elements.Select(el=> el.Value).Contains(def.Name)
from el in elements
where el.Value.Equals(def.Name)
select new { el.NodeType, def.Key };
但在运行时它会生成一个“{”本地序列不能在查询运算符的 LINQ to SQL 实现中使用,但包含运算符除外。”}”
那么我需要什么语法来做到这一点?
很多感谢 IA
西蒙
【问题讨论】:
标签: linq-to-sql anonymous-types