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));
        ...
    }
}