C# Can';不要在CookieCollection上使用LINQ,尽管枚举器是可访问的

C# Can';不要在CookieCollection上使用LINQ,尽管枚举器是可访问的,c#,linq,C#,Linq,大致如下,我想获得第一个具有给定URI的特定名称的cookie Uri uri = new Uri(url); CookieContainer cookieJar = new CookieContainer(); ... CookieCollection cookies = cookieJar.GetCookies(uri); 然后,我可以像这样访问第一个(目前也是唯一的)cookie Cookie cookie = cookies[0]; Cookie cookie = cookies

大致如下,我想获得第一个具有给定URI的特定名称的cookie

Uri uri = new Uri(url);
CookieContainer cookieJar = new CookieContainer();
...
CookieCollection cookies = cookieJar.GetCookies(uri);
然后,我可以像这样访问第一个(目前也是唯一的)cookie

Cookie cookie = cookies[0];
Cookie cookie = cookies
  .First(c => c.Name == "vanilla");
我看到这是一个集合,它有一个枚举器。然而,当我尝试使用LINQ时,这个集合似乎没有得到这样的效果

Cookie cookie = cookies[0];
Cookie cookie = cookies
  .First(c => c.Name == "vanilla");
LINQ是在顶部导入的,它肯定可以与我加入的一些测试行一起工作。根据智能感知,也没有
AsList()
ToArray()
。这件收藏品似乎不太像收藏品

我错过了什么

编辑

我最终复制了这样的内容。但它似乎很笨重

Cookie[] cookies = new Cookie[cookieJar.Count];
cookieJar.GetCookies(uri).CopyTo(cookies, 0);
Cookie cookie = cookies
  .First(c => c.Name == "pm_retention_urls");

CookieCollection
仅实现
IEnumerable
而不是
IEnumerable
。您可以使用
Cast
创建
IEnumerable

Cookie cookie = cookies.Cast<Cookie>().First(c => c.Name == "vanilla");
Cookie Cookie=cookies.Cast().First(c=>c.Name==“香草”);

CookieCollection
仅实现
IEnumerable
而不是
IEnumerable
。您可以使用
Cast
创建
IEnumerable

Cookie cookie = cookies.Cast<Cookie>().First(c => c.Name == "vanilla");
Cookie Cookie=cookies.Cast().First(c=>c.Name==“香草”);

你是说
IEnumerable
不是LINQ'able,它是通用的对应物
IEnumerable
是吗?我从来没有注意到(从2007年开始使用LINQ,不知何故,我没有在非类型版本上使用它)。@KonradViltersten-是的,几乎所有的LINQ方法都在
IEnumerable
上,而不是
IEnumerable
,唯一的
IEnumerable
方法是
Cast
OfType
,它们用于从非泛型序列创建泛型序列。那么,您知道什么?12年后,我仍然学习新的基本知识。不确定是惊讶还是尴尬……:)你是说
IEnumerable
不是LINQ'able,它是通用的对应物
IEnumerable
是吗?我从来没有注意到(从2007年开始使用LINQ,不知何故,我没有在非类型版本上使用它)。@KonradViltersten-是的,几乎所有的LINQ方法都在
IEnumerable
上,而不是
IEnumerable
,唯一的
IEnumerable
方法是
Cast
OfType
,它们用于从非泛型序列创建泛型序列。那么,您知道什么?12年后,我仍然学习新的基本知识。不确定是惊讶还是尴尬……:)