Как сказал Люк в комментариях, конкретный тип List<T>
уже имеет метод ToArray()
. Но если вы используете C # 3.0, вы можете использовать метод расширения ToArray()
на любом экземпляре IEnumerable
(который включает IList
, IList<T>
, коллекции, другие массивы и т. Д.)
var myList = new List<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array = myList.ToArray(); // instance method
IList<Guid> myList2 = new List<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array2 = myList2.ToArray(); // extension method
var myList3 = new Collection<Guid> {Guid.NewGuid(), Guid.NewGuid()};
Guid[] array3 = myList3.ToArray(); // extension method
Относительно вашего второго вопроса:
Вы можете использовать метод Select
для выполнения необходимой проекции:
var list = new List<MyClass> {new MyClass(), new MyClass()};
Guid[] array = list.Select(mc => mc.value).ToArray();