我正在尝试汇总通用集合中的值,我在其他代码中使用了完全相同的代码来执行此功能,但是ulong
数据类型似乎有问题?
代码
Items.Sum(e => e.Value);
有以下错误:
错误15下列方法或属性之间的调用不明确:'
System.Linq.Enumerable.Sum<System.Collections.Generic.KeyValuePair<int,ulong>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ulong>>, System.Func<System.Collections.Generic.KeyValuePair<int,ulong>,float>)
'和'System.Linq.Enumerable.Sum<System.Collections.Generic.KeyValuePair<int,ulong>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<int,ulong>>, System.Func<System.Collections.Generic.KeyValuePair<int,ulong>,decimal?>
)
public class Teststuff : BaseContainer<int, ulong, ulong>
{
public decimal CurrentTotal { get { return Items.Sum(e => e.Value); } }
public override void Add(ulong item, int amount = 1)
{
}
public override void Remove(ulong item, int amount = 1)
{
}
}
public abstract class BaseContainer<T, K, P>
{
/// <summary>
/// Pass in the owner of this container.
/// </summary>
public BaseContainer()
{
Items = new Dictionary<T, K>();
}
public BaseContainer()
{
Items = new Dictionary<T, K>();
}
public Dictionary<T, K> Items { get; private set; }
public abstract void Add(P item, int amount = 1);
public abstract void Remove(P item, int amount = 1);
}
Sum()
没有返回a的重载ulong
,并且编译器无法确定确实存在哪些重载要调用。
您可以通过强制转换来决定:
Items.Sum(e => (decimal)e.Value)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句