【问题标题】:How do I convert an Array to a List<object> in C#?如何在 C# 中将数组转换为 List<object>?
【发布时间】:2011-02-07 14:01:11
【问题描述】:

如何在 C# 中将 Array 转换为 List&lt;object&gt;

【问题讨论】:

标签: c# arrays


【解决方案1】:
List<object> list = myArray.Cast<Object>().ToList();

如果数组元素的类型是引用类型,则可以省略 .Cast&lt;object&gt;(),因为 C#4 添加了接口协方差,即 IEnumerable&lt;SomeClass&gt; 可以被视为 IEnumerable&lt;object&gt;

List<object> list = myArray.ToList<object>();

【讨论】:

  • 确保您使用的是 System.Linq
  • 这只适用于VS2015吗?在 VS2012 下:“System.Array”不包含“Cast”的定义,并且找不到接受“System.Array”类型的第一个参数的扩展方法“Cast”(您是否缺少 using 指令或程序集引用? )
  • 感谢List&lt;object&gt; list = myArray.ToList&lt;object&gt;();
【解决方案2】:

使用构造函数:new List&lt;object&gt;(myArray)

【讨论】:

  • 这种风格的一个好处是它创建并返回列表,因此您可以附加更多方法(例如.Contains(userName))。对于将一堆逻辑塞进一行 if 语句很有用:)。
【解决方案3】:

List&lt;object&gt;.AddRange(object[]) 应该可以解决问题。它将避免各种无用的内存分配。 你也可以使用 Linq,有点像这样:object[].Cast&lt;object&gt;().ToList()

【讨论】:

    【解决方案4】:

    List 构造函数可以接受任何实现 IEnumerable 的东西,因此...

            object[] testArray = new object[] { "blah", "blah2" };
            List<object> testList = new List<object>(testArray);
    

    【讨论】:

      【解决方案5】:
      private List<object> ConvertArrayToList(object[] array)
      {
        List<object> list = new List<object>();
      
        foreach(object obj in array)
          list.add(obj);
      
        return list;
      }
      

      【讨论】:

        【解决方案6】:

        如果数组项和列表项相同

        List<object> list=myArray.ToList();
        

        【讨论】:

        • 我必须使用 System.Linq 添加;为了让它工作;不知道为什么。
        【解决方案7】:

        大家说的都是对的,所以

        int[] aArray = {1,2,3};
        List<int> list = aArray.OfType<int> ().ToList();
        

        会将 aArray 变成一个列表,列表。然而,许多 cmets 最缺少的就是你需要在类的顶部有这 2 个 using 语句

        using System.Collections.Generic;
        using System.Linq;
        

        我希望这会有所帮助!

        【讨论】:

          【解决方案8】:

          也可以直接用数组初始化列表:

          List<int> mylist= new List<int>(new int[]{6, 1, -5, 4, -2, -3, 9});
          

          【讨论】:

            【解决方案9】:

            另一种方式

            List<YourClass> list = (arrayList.ToArray() as YourClass[]).ToList();
            

            【讨论】:

              【解决方案10】:

              这允许你发送一个对象:

              private List<object> ConvertArrayToList(dynamic array)
              

              【讨论】:

                【解决方案11】:

                这是我的版本:

                  List<object> list = new List<object>(new object[]{ "test", 0, "hello", 1, "world" });
                
                  foreach(var x in list)
                  {
                      Console.WriteLine("x: {0}", x);
                  }
                

                【讨论】:

                  【解决方案12】:

                  你可以试试这个,

                  using System.Linq;
                  string[] arrString = { "A", "B", "C"};
                  List<string> listofString = arrString.OfType<string>().ToList();
                  

                  希望这段代码能帮到你。

                  【讨论】:

                    猜你喜欢
                    • 2010-09-15
                    • 2012-02-21
                    • 1970-01-01
                    • 2015-05-12
                    • 2020-09-15
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-08-18
                    相关资源
                    最近更新 更多