gpt4 book ai didi

c# - 我怎样才能在这里使用通用方法?

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:17 24 4
gpt4 key购买 nike

我有这些方法,您可能认为我可能也有用于其他数字类型的方法。有什么方法可以将这些方法合并为一个通用方法吗?

public long GetActiveDepartmentsQuotaOf ( Func<Department, long> exp )
{
return Departments == null ? 0 : Departments.Where(d => d.Status == 1).Sum(exp);
}

public int GetActiveDepartmentsQuotaOf ( Func<Department, int> exp )
{
return Departments == null ? 0 : Departments.Where(d => d.Status == 1).Sum(exp);
}

我试过这个:

public T GetActiveDepartmentsQuotaOf<T> ( Func<Department, T> exp )
{
return Departments == null ? 0 : Departments.Where(d => d.Status == 1).Sum(exp);
}

但它在语法上是错误的。摆脱这种情况的出路是什么?我只是好奇

最佳答案

这行不通,因为 Enumerable.Sum方法仅适用于某些可以总结的类型的 IEnumerables(例如 intdoublefloat)。

这是完整的过载列表:https://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum(v=vs.110).aspx

不清楚您将如何总结 IEnumerable<T> , 其中T可以是任何东西。想象一下,例如 TDepartment .在这种情况下,您希望 .Sum() 返回什么?

关于c# - 我怎样才能在这里使用通用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com