我收到错误,但不知道为什么:
static void decoupeTableau(IEnumerable<int> dst, IEnumerable<int> src)
{
for (int i = 0; i < src.Count() && i < 4; ++i)
dst.ElementAt(i) = src.ElementAt(i); // Here
}
Error:
赋值的左侧必须是变量、属性或索引器
为什么我会得到它?
为什么我得到它?
因为你有一个赋值运算符,其中左侧是方法调用。你期望它能做什么?那会调用什么代码?赋值必须设置变量的值,或者调用属性的设置器。这没有做任何一件事情。
基本上,你不能这样做 - 并且对于IEnumerable<T>
它甚至没有意义,因为它可以是只读的、生成的等。
也许你想要一个IList<int>
反而:
static void DecoupeTableau(IList<int> dst, IEnumerable<int> src)
{
int i = 0;
foreach (var value in src.Take(4))
{
dst[i] = value;
i++;
}
}
请注意这段代码也可能是much更高效——调用Count()
and ElementAt
循环可能会非常昂贵。 (例如,使用生成器,每次调用Count()
你必须迭代whole流 - 所以如果这是理论上无限的流,例如整数的随机序列,它甚至不会完成。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)