对于C#,除非我将ulong转换为Enumerable.Sum<TSource> Method (IEnumerable<TSource>, Func<TSource, Int64>),否则ulong不支持long类型作为Mehtonf的返回类型。

public class A
{
  public ulong id {get;set;}

}




publec Class B
{
    public void SomeMethod(IList<A> listOfA)
    {
        ulong result = listofA.Sum(A => A.Id);
    }
}

编译器将引发两个错误:
  • C#Enumerable.Sum方法不支持ulong类型-LMLPHP
  • C#Enumerable.Sum方法不支持ulong类型-LMLPHP

    除非我做
  • ulong result = (ulong)listOfA.Sum(A => (long)A.Id)
    无论如何,有没有类型转换就可以解决这个问题?谢谢!

    最佳答案

    您可以改用Aggregate

    ulong result = listOfULongs.Aggregate((a,c) => a + c);
    

    或者在您的特定情况下
    ulong result = listOfA.Aggregate(0UL, (a,c) => a + c.Id);
    

    您还应该首先考虑是否真的应该使用无符号值类型。

    关于C#Enumerable.Sum方法不支持ulong类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35612997/

    10-12 07:20