假设我有List<Cookie>
,我想将其转换为CookieCollection
。最简单的方法是什么?
我知道我可以使用foreach循环,但是没有办法用与此类似的代码实例化它吗?
List<Cookie> l = ...;
var c = new CookieCollection() { l };
当我尝试编译时,我收到错误:
最佳重载的Add方法 'System.Net.CookieCollection.Add(System.Net.CookieCollection)' 对于集合初始化程序有 一些无效的论点
顺便说一下,Add
支持两种CookieCollection
方法:
public void Add(Cookie cookie);
public void Add(CookieCollection cookies);
答案 0 :(得分:8)
在第一个示例中给出c
和l
,这样做:
l.ForEach(c.Add);
答案 1 :(得分:4)
CookieCollection是在.Net 2之前编写的(在Generics之前)。因此,除了手动使用foreach循环之外,实际上没有其他方法可以做到。
答案 2 :(得分:1)
您可以将lambda传递给List的ForEach方法。这将独立于CookieCollection的构造函数。
List<Cookie> l = ...;
var c = new CookieCollection();
l.ForEach(tempCookie => c.Add(tempCookie));
答案 3 :(得分:0)
List<Cookie> l = ...;
var c = new CookieCollection();
l.ForEach(x => c.Add(x));