汎用コレクションの値を集計しようとしていますが、このコードを他のコードでも実行するのに同じ正確なコードを使用していますが、 ulong
データ型?LINQでのsumメソッドの使用
コード
Items.Sum(e => e.Value);
は、次のエラーがあります。
Error 15 The call is ambiguous between the following methods or properties: '
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>)
' and '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);
}
私はちょうどすべてのulongsを10進数に変更しました。私はタイマーが立ち上がるとすぐにこれを受け入れます。 – lakedoo
@lakedoo: 'Value'の型を変更すると、キャストは必要ありません。また、代わりに 'long'を望んでいないと確信していますか? – SLaks
良い点、ええ私はそれに何か問題があるようにはそれほど長くないつもりです。再度、感謝します! – lakedoo