小编Bor*_*ink的帖子

.NET 7 通用数学不支持 Linq 方法 Sum?

我有以下代码,但它无法在 Visual Studio 17.4 预览版 2.1 和 .NET 7 RC1 SDK 中编译:

using System.Numerics;

int averageInt = Average<int, int>(1, 5, 10);
Console.WriteLine(averageInt);

double averageDouble = Average<int, double>(1, 5, 10);
Console.WriteLine(averageDouble);

TResult Average<TInput, TResult>(params TInput[] numbers)
    where TInput : INumber<TInput>
    where TResult : INumber<TResult> => numbers.Sum() / TResult.CreateChecked(numbers.Length);
Run Code Online (Sandbox Code Playgroud)

我得到的编译器错误是: Error CS1929 'TInput[]' does not contain a definition for 'Sum' and the best extension method overload 'Queryable.Sum(IQueryable<decimal>)' requires a receiver of type 'IQueryable<decimal>'

我尝试了以下方法作为替代方案,但它也无法编译:

using System.Numerics;

int averageInt = Average<int, int>(1, 5, …
Run Code Online (Sandbox Code Playgroud)

.net c# linq .net-7.0

6
推荐指数
1
解决办法
472
查看次数

标签 统计

.net ×1

.net-7.0 ×1

c# ×1

linq ×1