C# 无法解析方法和

C# 无法解析方法和,c#,linq,C#,Linq,试图重新使用Sum,但出现以下错误: 无法解析方法和 如何更改语法 private static void AggregatesData(User user) { user.TotalActiveUsers = SumToolbarsData(user.bars,(tb => tb.ActiveUsers)); user.TotalInstalls = SumToolbarsData(user.bars, (tb =&

试图重新使用
Sum
,但出现以下错误:

无法解析方法和

如何更改语法

   private static void AggregatesData(User user)
        {
            user.TotalActiveUsers = SumToolbarsData(user.bars,(tb => tb.ActiveUsers));

            user.TotalInstalls = SumToolbarsData(user.bars, (tb => tb.Installs));

            user.TotalBalance = SumToolbarsData(user.bars, (tb => tb.Balance));
        }

        private static T SumToolbarsData<T>(List<Bar> bars, Func<Bar, T> selector)
        {
            return bars.Sum<T>(selector);
        }
private static void AggregatesData(用户)
{
user.TotalActiveUsers=SumToolbarsData(user.bar,(tb=>tb.ActiveUsers));
user.TotalInstalls=sumtorbalsdata(user.bar,(tb=>tb.Installs));
user.TotalBalance=sumtorbasdata(user.bar,(tb=>tb.Balance));
}
专用静态数据(列表栏、函数选择器)
{
返回条。总和(选择器);
}

LINQ不提供开箱即用的
Sum
通用版本,原因是语言和运行时(在
动态之前)不允许添加通用(
)值;没有
INumber
接口,该语言不支持泛型类型(
)上的运算符(
++
)。要么切换到采用
Func
Func
等的重载,要么使用不包含通用
Sum
实现的库,具体如下:

public static TSource Sum<TSource>(this IEnumerable<TSource> source);
public static TValue Sum<TSource, TValue>(this IEnumerable<TSource> source,
                        Func<TSource,TValue> selector);
publicstatictsourcesum(这个IEnumerable源);
公共静态TValue和(此IEnumerable源,
函数选择器);
它通过解析
+
操作符,并使用一些烟雾和镜像(这样它就不会慢,等等)来实现