3 回答
TA贡献1898条经验 获得超8个赞
减轻自己的痛苦...
using System.Linq;
int[] ints = new [] { 10, 20, 10, 34, 113 };
List<int> lst = ints.OfType<int>().ToList(); // this isn't going to be fast.
也可以...
List<int> lst = new List<int> { 10, 20, 10, 34, 113 };
要么...
List<int> lst = new List<int>();
lst.Add(10);
lst.Add(20);
lst.Add(10);
lst.Add(34);
lst.Add(113);
要么...
List<int> lst = new List<int>(new int[] { 10, 20, 10, 34, 113 });
要么...
var lst = new List<int>();
lst.AddRange(new int[] { 10, 20, 10, 34, 113 });
TA贡献1942条经验 获得超3个赞
List的构造函数重载也可以工作...但是我想这将需要一个强类型数组。
//public List(IEnumerable<T> collection)
var intArray = new[] { 1, 2, 3, 4, 5 };
var list = new List<int>(intArray);
...用于Array类
var intArray = Array.CreateInstance(typeof(int), 5);
for (int i = 0; i < 5; i++)
intArray.SetValue(i, i);
var list = new List<int>((int[])intArray);
TA贡献1886条经验 获得超2个赞
有趣的是,没人回答这个问题,OP不是使用强类型,int[]而是使用Array。
您必须将Array转换为实际的int[],然后才能使用ToList:
List<int> intList = ((int[])ints).ToList();
请注意,Enumerable.ToList调用列表构造函数将首先检查是否可以将参数强制转换为ICollection<T>(数组实现)该参数,然后它将使用更有效的ICollection<T>.CopyTo方法来代替枚举序列。
- 3 回答
- 0 关注
- 441 浏览
添加回答
举报