【问题标题】:How to Convert IEnumerable<T> to ConcurrentBag<T> in C#?如何在 C# 中将 IEnumerable<T> 转换为 ConcurrentBag<T>?
【发布时间】:2010-09-20 07:10:05
【问题描述】:

我的 linq 查询返回 IEnumerable&lt;object&gt; 的集合。

如何将其转换为集合ConcurrentBag&lt;object&gt; 的强类型对象?

【问题讨论】:

    标签: c# c#-4.0


    【解决方案1】:

    ConcurrentBag 有一个 constructor,它接受一个 IEnumerable

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

    【讨论】:

      【解决方案2】:

      您可以使用proper constructor

      IEnumerable<Foo> foos = ...
      ConcurrentBag<Foo> concurrentFoos = new ConcurrentBag<Foo>(foos);
      

      【讨论】:

        【解决方案3】:

        ConcurrentBag&lt;T&gt; 有一个 constructor,它接受一个 IEnumberable&lt;T&gt; 作为输入。

        有几个集合支持这一点,因此请务必检查构造函数重载。

        【讨论】:

          【解决方案4】:

          扩展方法如下:

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

          【讨论】:

            猜你喜欢
            • 2010-09-07
            • 1970-01-01
            • 1970-01-01
            • 2012-02-24
            • 2010-09-11
            • 2021-12-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多