当前位置:  开发笔记 > 编程语言 > 正文

C#LINQ谓词类型参数

如何解决《C#LINQ谓词类型参数》经验,为你挑选了1个好方法。

我有一个XElement,其中包含模拟数据的值.

我有一个表达式来查询xml:

Expression> simpleXmlFunction = 
    b => int.Parse(b.Element("FooId").Value) == 12;

用于:

var simpleXml = xml.Elements("Foo").Where(simpleXmlFunction).First();

设计时错误是:

无法从用法中推断出方法'System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable,System.Func)'的类型参数.尝试明确指定类型参数'

提供给Where的委托应该接受一个XElement并返回一个bool,标记该项是否与查询匹配,我不知道如何向委托或where子句添加更多内容以标记该类型.

此外,针对实体框架的实际功能的并行方法没有此问题.LINQ-to-XML版本有什么不正确之处?



1> David Morton..:

不要将simpleXmlFunction设为Expression >.使它成为一个Func .这就是.Where的代表所期待的.

Func simpleXmlFunction =
     new Func(b => int.Parse(b.Element("FooId").Value) == 12);

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有