为什么这段代码不起作用?
public static IList<float> CreateModifiedList(IList<float> list)
{
IList<float> modifiedList= list.Aggregate(new List<float> (), (l, item) =>l.Add(++item));
return modifiedList;
}
当我尝试使用 Mono 编译它时,出现以下错误:
error CS0029: Cannot implicitly convert type
void' to
System.Collections.Generic.List'
最佳答案
它不起作用,因为 l.Add(++item)
不返回您的聚合( float 列表) - 它返回 void
。第二个参数的类型应为 Func<List<float>, float, List<float>>
。更改代码以返回聚合变量:
(l, item) => { l.Add(++item); return l; }
顺便说一句您正在做的事情可以通过以下方式实现:
IList<float> modifiedList = list.Select(item => ++item).ToList();
关于c# - Mono 和 Linq 聚合方法。尝试将项目添加到新列表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13123041/