c# - Mono 和 Linq 聚合方法。尝试将项目添加到新列表时出错

标签 c# linq list mono accumulate

为什么这段代码不起作用?

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/

相关文章:

python比较两个列表,将每个失败视为独立失败而不是单一失败

C#:如何为类创建 "aliases"

c# - Blazor azure AD 从图形 API 检索电子邮件

c# - TypeDescriptor.CreateProperty 不添加属性

c# - EF Core 3.0 .Include() 链的时间比 2.2 长约 5-10 倍

c# - 如何设置属性选择器的值 Expression<Func<T,TResult>>

c++列表迭代器的段错误

list - Prolog-仅从列表中获取相同的元素

c# - 我应该如何在编译时不知道类型的情况下调用泛型函数?

c# - 如何最好地组合这两个 LINQ 表达式?