如何在C#中将IEnumerable<T>转换为ConcurrentBag<T>?

35

我的linq查询返回一个集合 IEnumerable<object>

我该如何将其转换为强类型的对象集合 ConcurrentBag<object>

4个回答

60

ConcurrentBag有一个接受IEnumerable参数的构造函数

IEnumerable<T> myEnum = ...
ConcurrentBag<T> myBag = new ConcurrentBag<T>(myEnum);

17
您可以使用适当的构造函数
IEnumerable<Foo> foos = ...
ConcurrentBag<Foo> concurrentFoos = new ConcurrentBag<Foo>(foos);

11

ConcurrentBag<T>有一个以IEnumberable<T>为输入的构造函数

多个集合支持此功能,请确保检查构造函数重载。


2
这里是扩展方法:

public static ConcurrentBag<T> ToConcurrentBag<T>(this IEnumerable<T> source) => new ConcurrentBag<T>(source);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接