C# Linq方法不适用于实现IEnumerable的集合
我正在尝试为类添加扩展方法 项链接是类型的属性。这个类要求C# Linq方法不适用于实现IEnumerable的集合,c#,linq,devexpress,C#,Linq,Devexpress,我正在尝试为类添加扩展方法 项链接是类型的属性。这个类要求IEnumerable 但是当我尝试使用任何Linq方法(例如any)时,我得到了错误: “DevExpress.XtraBars.BarItemLinkCollection”不包含“Any”的定义,并且找不到接受“DevExpress.XtraBars.BarItemLinkCollection”类型的第一个参数的扩展方法“Any”(是否缺少using指令或程序集引用?) 我使用DevExpress 15.1.7 问题是我错过了什么。为
IEnumerable
但是当我尝试使用任何Linq方法(例如any)时,我得到了错误:
“DevExpress.XtraBars.BarItemLinkCollection”不包含“Any”的定义,并且找不到接受“DevExpress.XtraBars.BarItemLinkCollection”类型的第一个参数的扩展方法“Any”(是否缺少using指令或程序集引用?)
我使用DevExpress 15.1.7
问题是我错过了什么。为什么我没有可用于属性的Linq方法?我找不到版本15.1.7的任何文档,但我假设返回了
IEnumerable
,因此您首先必须使用Cast()
或of type
来获取IEnumerable
(请参阅)
所以我认为你需要写作
bool a=bar.ItemLinks.Cast().Any(x=>x.Item.Tag.Equals(Tag))
使用…发布代码>文件顶部的行块。正如@bommelding已经提到的,使用中一定有问题。您的代码在我的机器上编译得很好。@bommelding-done。我找不到此特定版本的任何文档,但我假设返回了IEnumerable
,因此您首先必须使用Cast()
或of type
来获得IEnumerable
(请参阅)。这样做有效吗<代码>(bar.ItemLinks作为IEnumerable).Any(x=>x.Item.Tag.Equals(Tag))代码>
using System;
using System.ComponentModel;
using DevExpress.XtraBars;
using System.Drawing;
using System.Windows.Forms;
using System.Linq;
using System.Data;
public static class BarExtensions
{
public static BarItemLink GetBarItemLinkByTag(this Bar bar, object tag)
{
BarItemLink foundItemLink = null;
bool a = bar.ItemLinks.Any(x => x.Item.Tag.Equals(tag));
...
}
}