首先我们来讲一下C# Linq中的Sum()方法。Sum()方法是用来计算序列中所有数值的和的方法,它可以用于数字类型(包括int、long、float、double等)或者是支持数值运算(例如加法)的自定义类型,但不包括bool类型。下面讲解一下具体用法和示例:
基本语法
序列.Sum([selector])
其中,selector可以是一个Lambda表达式,用于指定一个自定义的运算规则。
示例一
下面是一个对int类型序列求和的示例:
// 定义一个int类型的序列
List<int> numbers = new List<int>{1, 2, 3, 4, 5};
// 使用Sum()方法求和
int sum = numbers.Sum();
Console.WriteLine(sum); // 输出:15
在这里,我们使用Sum()方法对一个int类型的序列进行求和。由于int类型默认支持数值运算,所以不需要指定selector参数。
示例二
下面是一个对自定义类型序列求和的示例:
// 定义一个自定义类型的序列
List<Person> persons = new List<Person>{
new Person{Name="张三", Age=20},
new Person{Name="李四", Age=30},
new Person{Name="王五", Age=40}
};
// 使用Sum()方法求和
int ageSum = persons.Sum(p => p.Age);
Console.WriteLine(ageSum); // 输出:90
在这里,我们定义了一个自定义类型Person,它包含了Name和Age两个成员变量。我们对一个Person类型的序列进行求和,其中selector参数为Lambda表达式p => p.Age,表示取出每个Person的Age成员进行求和。
注意事项
使用Sum()方法时,需要注意以下几点:
- 序列中至少有一个元素才可以调用Sum()方法,否则会抛出InvalidOperationException异常。
- 序列中的元素类型必须支持数值运算,否则会抛出InvalidCastException异常。
- 在使用自定义类型时,需要指定selector参数以指定一个自定义的运算规则。
- 在对一个double类型序列求和时,可能会存在精度误差的问题,需要谨慎使用。
希望这些内容对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Linq的Sum()方法 – 计算序列中元素的总和 - Python技术站