Как преобразовать массив в список в C#?


Как мне преобразовать Array до List<object> в C#?

11 67

11 ответов:

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

если тип элементов массива является ссылочным типом, вы можете опустить .Cast<object>() поскольку C#4 добавил ко-дисперсию интерфейса, т. е. IEnumerable<SomeClass> можно рассматривать как IEnumerable<object>.

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

использовать конструктор: new List<object>(myArray)

List<object>.AddRange(object[]) следует сделать трюк. Это позволит избежать всех видов бесполезного выделения памяти. Вы также можете использовать Linq, примерно так:object[].Cast<object>().ToList()

конструктор List может принимать все, что реализует IEnumerable, поэтому...

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

  foreach(object obj in array)
    list.add(obj);

  return list;
}

если элемент массива и элемент списка такие же

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

вы также можете инициализировать список с массивом напрямую:

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

все, что все говорят правильно так,

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

превратил бы aArray в список, список. Однако самая большая вещь, которая отсутствует во многих комментариях, заключается в том, что вам нужно иметь эти 2 оператора using в верхней части вашего класса

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

надеюсь, это поможет!

другой способ

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

Это позволит вам отправить объект:

private List<object> ConvertArrayToList(dynamic array)

вот мой вариант:

  List<object> list = new List<object>(new object[]{ "test", 0, "hello", 1, "world" });

  foreach(var x in list)
  {
      Console.WriteLine("x: {0}", x);
  }