无法解析方法Sum

Ela*_*nda 5 c# linq

试图重用Sum但得到这个错误:

无法解析方法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);
        }
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 7

LINQ不提供开箱即用的通用版本Sum,因为语言和运行时(之前dynamic)不允许添加 generic(<T>)值; 没有INumber接口,语言不支持+泛型类型(<T>)上的operator ().无论是切换到该采取过载Func<T, float>,Func<T, int>等-或使用MiscUtil库,包括一般的Sum<T>实现,具体如下:

public static TSource Sum<TSource>(this IEnumerable<TSource> source);
public static TValue Sum<TSource, TValue>(this IEnumerable<TSource> source,
                        Func<TSource,TValue> selector);
Run Code Online (Sandbox Code Playgroud)

它通过解析+操作员,使用一些烟雾和镜子(使它不慢等)来做到这一点.