循环通过List <double>错误方法不匹配</double>

时间:2015-01-15 21:16:02

标签: c#

错误是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);
}

1 个答案:

答案 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}}。