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源,
函数选择器);
它通过解析+
操作符,并使用一些烟雾和镜像(这样它就不会慢,等等)来实现