C# IList不包含定义<;linq函数>;

C# IList不包含定义<;linq函数>;,c#,linq,C#,Linq,我有一个IList IList list = GetList(); 想在上面使用Linq函数,比如FirstOrDefault()或Where(),但它说: IList不包含[linq函数]的定义 我做错了什么?请确保您使用的是通用的IList,类型如下所示 IList<string> list = GetList(); IList list=GetList(); 然后,您可以在该列表上使用LINQ函数。如果您的集合未实现通用接口,则可以使用类型(Cast+Filter)的Ca

我有一个
IList

IList list = GetList();
想在上面使用Linq函数,比如
FirstOrDefault()
Where()
,但它说:

IList不包含[linq函数]的定义


我做错了什么?

请确保您使用的是通用的
IList
,类型如下所示

IList<string> list = GetList();
IList list=GetList();

然后,您可以在该列表上使用LINQ函数。

如果您的集合未实现通用接口,则可以使用类型(Cast+Filter)的
Cast
扩展方法

IList list = GetList();
string first = list.Cast<string>().FirstOrDefault();
如果您只希望对象是字符串,则可以使用类型为
,如上所述:

string first = list.OfType<string>().FirstOrDefault();
string first=list.OfType().FirstOrDefault();
如果您从非泛型集合开始,则类型()的
Cast()
是您的朋友。
string first = list.OfType<string>().FirstOrDefault();