C# Linq的Sum()
方法可以用于计算序列中数值类型元素的总和。下面是该方法的详细攻略:
语法
public static int Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int> selector);
public static long Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long> selector);
public static float Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float> selector);
public static double Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double> selector);
public static decimal Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal> selector);
public static int? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int?> selector);
public static long? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long?> selector);
public static float? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float?> selector);
public static double? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double?> selector);
public static decimal? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal?> selector);
参数
source
:必需。要计算元素总和的序列。selector
:必需。对序列的每个元素执行的函数,该函数返回元素的数值类型。
返回值
返回一个数值类型的值,该值表示序列中所有元素的总和。
示例
下面是两个使用Sum()
方法的示例:
示例 1
int[] numbers = { 10, 20, 30, 40 };
int sum = numbers.Sum();
Console.WriteLine("总和是:" + sum);
输出:
总和是:100
示例 2
List<Product> products = new List<Product>
{
new Product { Name = "苹果", Price = 1.5m, Quantity = 20 },
new Product { Name = "香蕉", Price = 2.5m, Quantity = 10 },
new Product { Name = "橙子", Price = 1m, Quantity = 30 },
};
decimal totalPrice = products.Sum(p => p.Price * p.Quantity);
Console.WriteLine("总价是:" + totalPrice);
输出:
总价是:65
在以上示例中,第一个示例用于计算整数数组中所有元素的总和,第二个示例用于计算包含 Product
对象的列表中每个对象的总价。在第二个示例中,使用了lambda表达式,指定了每个产品的价格和数量,为Sum()
方法提供计算的数据源。