错误是system.collections.generic.list的最佳重载方法匹配,但有一些无效参数也是关于将ienumerable<int>
转换为ienumerable<double>
的错误
List<double> list = new List<double>(Enumerable.Repeat(0, 10000));
for (var i = 0; i < list.Count; i++)
{
list[i] = 10-(0.01*i);
}
答案 0 :(得分:6)
因为您传递给Enumerable.Range
的第一个参数是int
个通用参数,所以int
也被Enumerable.Range(0, 10000)
传递,因此IEnumerable<int>
会返回List<double>
,这是0
不适合0d
构造函数。
在Enumerable.Repeat
来电中将List<double> list = new List<double>(Enumerable.Repeat(0d, 10000));
更改为List<double> list = new List<double>(Enumerable.Repeat<double>(0, 10000));
:
0
或者在调用时指定泛型参数:
double
会强制{{1}}转换为{{1}}。