Поделиться через


Enumerable.Sum Метод

Определение

Вычисляет сумму последовательности числовых значений.

Перегрузки

Sum(IEnumerable<Single>)

Вычисляет сумму последовательности значений типа Single.

Sum(IEnumerable<Nullable<Int32>>)

Вычисляет сумму последовательности значений Int32 обнуляемого типа.

Sum(IEnumerable<Nullable<Single>>)

Вычисляет сумму последовательности значений Single обнуляемого типа.

Sum(IEnumerable<Nullable<Int64>>)

Вычисляет сумму последовательности значений Int64 обнуляемого типа.

Sum(IEnumerable<Nullable<Double>>)

Вычисляет сумму последовательности значений Double обнуляемого типа.

Sum(IEnumerable<Int32>)

Вычисляет сумму последовательности значений типа Int32.

Sum(IEnumerable<Int64>)

Вычисляет сумму последовательности значений типа Int64.

Sum(IEnumerable<Double>)

Вычисляет сумму последовательности значений типа Double.

Sum(IEnumerable<Decimal>)

Вычисляет сумму последовательности значений типа Decimal.

Sum(IEnumerable<Nullable<Decimal>>)

Вычисляет сумму последовательности значений Decimal обнуляемого типа.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Вычисляет сумму последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Вычисляет сумму последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Вычисляет сумму последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Вычисляет сумму последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Вычисляет сумму последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Вычисляет сумму последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Вычисляет сумму последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Вычисляет сумму последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Вычисляет сумму последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Вычисляет сумму последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Sum(IEnumerable<Single>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Single.

public:
[System::Runtime::CompilerServices::Extension]
 static float Sum(System::Collections::Generic::IEnumerable<float> ^ source);
public static float Sum (this System.Collections.Generic.IEnumerable<float> source);
static member Sum : seq<single> -> single
<Extension()>
Public Function Sum (source As IEnumerable(Of Single)) As Single

Параметры

source
IEnumerable<Single>

Последовательность значений Single, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Примеры

В следующем примере кода показано, как использовать Sum(IEnumerable<Single>) для суммирования значений последовательности.

List<float> numbers = new List<float> { 43.68F, 1.25F, 583.7F, 6.5F };

float sum = numbers.Sum();

Console.WriteLine("The sum of the numbers is {0}.", sum);

/*
 This code produces the following output:

 The sum of the numbers is 635.13.
*/
' Create a list of Single values.
Dim numbers As New List(Of Single)(New Single() _
                               {43.68F, 1.25F, 583.7F, 6.5F})

' Get the sum of values in the list.
Dim sum As Single = numbers.Sum()

' Display the output.
Console.WriteLine($"The sum of the numbers is {sum}")

' This code produces the following output:
'
' The sum of the numbers is 635.13

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Nullable<Int32>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Int32 обнуляемого типа.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<int> Sum(System::Collections::Generic::IEnumerable<Nullable<int>> ^ source);
public static int? Sum (this System.Collections.Generic.IEnumerable<int?> source);
static member Sum : seq<Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Sum (source As IEnumerable(Of Nullable(Of Integer))) As Nullable(Of Integer)

Параметры

source
IEnumerable<Nullable<Int32>>

Последовательность значений Int32 обнуляемого типа, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Int32.MaxValue.

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Nullable<Single>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Single обнуляемого типа.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<float> Sum(System::Collections::Generic::IEnumerable<Nullable<float>> ^ source);
public static float? Sum (this System.Collections.Generic.IEnumerable<float?> source);
static member Sum : seq<Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Sum (source As IEnumerable(Of Nullable(Of Single))) As Nullable(Of Single)

Параметры

source
IEnumerable<Nullable<Single>>

Последовательность значений Single обнуляемого типа, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Примеры

В следующем примере кода показано, как использовать Sum(IEnumerable<Nullable<Single>>) для суммирования значений последовательности.

float?[] points = { null, 0, 92.83F, null, 100.0F, 37.46F, 81.1F };

float? sum = points.Sum();

Console.WriteLine("Total points earned: {0}", sum);

/*
 This code produces the following output:

 Total points earned: 311.39
*/
' Create an array of Nullable Single values.
Dim points() As Nullable(Of Single) =
{Nothing, 0, 92.83F, Nothing, 100.0F, 37.46F, 81.1F}

' Get the sum of values in the list.
Dim sum As Nullable(Of Single) = points.Sum()

' Display the output.
Console.WriteLine($"Total points earned: {sum}")

' This code produces the following output:
'
' Total points earned: 311.39

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Nullable<Int64>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Int64 обнуляемого типа.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<long> Sum(System::Collections::Generic::IEnumerable<Nullable<long>> ^ source);
public static long? Sum (this System.Collections.Generic.IEnumerable<long?> source);
static member Sum : seq<Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Sum (source As IEnumerable(Of Nullable(Of Long))) As Nullable(Of Long)

Параметры

source
IEnumerable<Nullable<Int64>>

Последовательность значений Int64 обнуляемого типа, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Int64.MaxValue.

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Nullable<Double>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Double обнуляемого типа.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<double> Sum(System::Collections::Generic::IEnumerable<Nullable<double>> ^ source);
public static double? Sum (this System.Collections.Generic.IEnumerable<double?> source);
static member Sum : seq<Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Sum (source As IEnumerable(Of Nullable(Of Double))) As Nullable(Of Double)

Параметры

source
IEnumerable<Nullable<Double>>

Последовательность значений Double обнуляемого типа, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше , чем Double.MaxValue.

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Int32>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Int32.

public:
[System::Runtime::CompilerServices::Extension]
 static int Sum(System::Collections::Generic::IEnumerable<int> ^ source);
public static int Sum (this System.Collections.Generic.IEnumerable<int> source);
static member Sum : seq<int> -> int
<Extension()>
Public Function Sum (source As IEnumerable(Of Integer)) As Integer

Параметры

source
IEnumerable<Int32>

Последовательность значений Int32, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Int32.MaxValue.

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Int64>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Int64.

public:
[System::Runtime::CompilerServices::Extension]
 static long Sum(System::Collections::Generic::IEnumerable<long> ^ source);
public static long Sum (this System.Collections.Generic.IEnumerable<long> source);
static member Sum : seq<int64> -> int64
<Extension()>
Public Function Sum (source As IEnumerable(Of Long)) As Long

Параметры

source
IEnumerable<Int64>

Последовательность значений Int64, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Int64.MaxValue.

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Double>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Double.

public:
[System::Runtime::CompilerServices::Extension]
 static double Sum(System::Collections::Generic::IEnumerable<double> ^ source);
public static double Sum (this System.Collections.Generic.IEnumerable<double> source);
static member Sum : seq<double> -> double
<Extension()>
Public Function Sum (source As IEnumerable(Of Double)) As Double

Параметры

source
IEnumerable<Double>

Последовательность значений Double, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше , чем Double.MaxValue.

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Decimal>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Decimal.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Decimal Sum(System::Collections::Generic::IEnumerable<System::Decimal> ^ source);
public static decimal Sum (this System.Collections.Generic.IEnumerable<decimal> source);
static member Sum : seq<decimal> -> decimal
<Extension()>
Public Function Sum (source As IEnumerable(Of Decimal)) As Decimal

Параметры

source
IEnumerable<Decimal>

Последовательность значений Decimal, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Decimal.MaxValue.

Комментарии

Метод Sum(IEnumerable<Decimal>) возвращает ноль, если source не содержит элементов.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum(IEnumerable<Nullable<Decimal>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Decimal обнуляемого типа.

public:
[System::Runtime::CompilerServices::Extension]
 static Nullable<System::Decimal> Sum(System::Collections::Generic::IEnumerable<Nullable<System::Decimal>> ^ source);
public static decimal? Sum (this System.Collections.Generic.IEnumerable<decimal?> source);
static member Sum : seq<Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Sum (source As IEnumerable(Of Nullable(Of Decimal))) As Nullable(Of Decimal)

Параметры

source
IEnumerable<Nullable<Decimal>>

Последовательность значений Decimal обнуляемого типа, сумму которых требуется вычислить.

Возвращаемое значение

Сумма последовательности значений.

Исключения

source имеет значение null.

Сумма больше, чем Decimal.MaxValue.

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static float Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, float> ^ selector);
public static float Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float> selector);
static member Sum : seq<'Source> * Func<'Source, single> -> single
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Single)) As Single

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Single>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Метод Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) возвращает ноль, если source не содержит элементов.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Single.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<long> Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<long>> ^ selector);
public static long? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long?> selector);
static member Sum : seq<'Source> * Func<'Source, Nullable<int64>> -> Nullable<int64>
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Long))) As Nullable(Of Long)

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Nullable<Int64>>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Int64.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

Этот метод можно применить к последовательности произвольных значений, если вы предоставляете функцию , selectorкоторая проецировать члены source в числовой тип, в частности Nullable<Int64> в C# или Nullable(Of Int64) в Visual Basic.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<int> Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<int>> ^ selector);
public static int? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int?> selector);
static member Sum : seq<'Source> * Func<'Source, Nullable<int>> -> Nullable<int>
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Integer))) As Nullable(Of Integer)

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Nullable<Int32>>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Int32.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Nullable<Int32> в C# или Nullable(Of Int32) в Visual Basic.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<double> Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<double>> ^ selector);
public static double? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double?> selector);
static member Sum : seq<'Source> * Func<'Source, Nullable<double>> -> Nullable<double>
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Double))) As Nullable(Of Double)

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Nullable<Double>>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше , чем Double.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Nullable<Double> в C# или Nullable(Of Double) в Visual Basic.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<float> Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<float>> ^ selector);
public static float? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,float?> selector);
static member Sum : seq<'Source> * Func<'Source, Nullable<single>> -> Nullable<single>
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Single))) As Nullable(Of Single)

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Nullable<Single>>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Nullable<Single> в C# или Nullable(Of Single) в Visual Basic.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, long> ^ selector);
public static long Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,long> selector);
static member Sum : seq<'Source> * Func<'Source, int64> -> int64
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Long)) As Long

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Int64>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Int64.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Int64.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static int Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int> ^ selector);
public static int Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int> selector);
static member Sum : seq<'Source> * Func<'Source, int> -> int
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Integer)) As Integer

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Int32>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Int32.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Int32.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static double Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, double> ^ selector);
public static double Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,double> selector);
static member Sum : seq<'Source> * Func<'Source, double> -> double
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Double)) As Double

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Double>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше , чем Double.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Double.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Decimal Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, System::Decimal> ^ selector);
public static decimal Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal> selector);
static member Sum : seq<'Source> * Func<'Source, decimal> -> decimal
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Decimal)) As Decimal

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Decimal>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Decimal.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Этот метод возвращает ноль, если source не содержит элементов.

Этот метод можно применить к последовательности произвольных значений, если предоставить функцию , selectorкоторая проецировать члены source в числовой тип, в частности Decimal.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к

Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)

Исходный код:
Sum.cs
Исходный код:
Sum.cs
Исходный код:
Sum.cs

Вычисляет сумму последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static Nullable<System::Decimal> Sum(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, Nullable<System::Decimal>> ^ selector);
public static decimal? Sum<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,decimal?> selector);
static member Sum : seq<'Source> * Func<'Source, Nullable<decimal>> -> Nullable<decimal>
<Extension()>
Public Function Sum(Of TSource) (source As IEnumerable(Of TSource), selector As Func(Of TSource, Nullable(Of Decimal))) As Nullable(Of Decimal)

Параметры типа

TSource

Тип элементов source.

Параметры

source
IEnumerable<TSource>

Последовательность значений, для которых вычисляется сумма.

selector
Func<TSource,Nullable<Decimal>>

Функция преобразования, применяемая к каждому элементу.

Возвращаемое значение

Сумма проецированных значений.

Исключения

Параметр source или selector имеет значение null.

Сумма больше, чем Decimal.MaxValue.

Примеры

В следующем примере кода показано, как использовать Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) для суммирования проецируемых значений последовательности.

Примечание

В этом примере кода используется перегрузка метода , отличающаяся от конкретной перегрузки, описанной в этой статье. Чтобы расширить пример до перегрузки, описанной в этой статье, измените selector текст функции.

class Package
{
    public string Company { get; set; }
    public double Weight { get; set; }
}

public static void SumEx1()
{
    List<Package> packages =
        new List<Package>
            { new Package { Company = "Coho Vineyard", Weight = 25.2 },
              new Package { Company = "Lucerne Publishing", Weight = 18.7 },
              new Package { Company = "Wingtip Toys", Weight = 6.0 },
              new Package { Company = "Adventure Works", Weight = 33.8 } };

    double totalWeight = packages.Sum(pkg => pkg.Weight);

    Console.WriteLine("The total weight of the packages is: {0}", totalWeight);
}

/*
 This code produces the following output:

 The total weight of the packages is: 83.7
*/
Structure Package
    Public Company As String
    Public Weight As Double
End Structure

Sub SumEx1()
    ' Create a list of Package values.
    Dim packages As New List(Of Package)(New Package() _
     {New Package With {.Company = "Coho Vineyard", .Weight = 25.2},
      New Package With {.Company = "Lucerne Publishing", .Weight = 18.7},
      New Package With {.Company = "Wingtip Toys", .Weight = 6.0},
      New Package With {.Company = "Adventure Works", .Weight = 33.8}})

    ' Sum the values from each item's Weight property.
    Dim totalWeight As Double = packages.Sum(Function(pkg) _
                                             pkg.Weight)

    ' Display the result.
    Console.WriteLine($"The total weight of the packages is: {totalWeight}")
End Sub

' This code produces the following output:
'
' The total weight of the packages is: 83.7

Комментарии

Элементы в source , которые null исключаются из вычисления суммы. Этот метод возвращает ноль, если source не содержит элементов или все элементы имеют значение null.

Этот метод можно применить к последовательности произвольных значений, если вы предоставляете функцию , selectorкоторая проецировать члены source в числовой тип, в частности Nullable<Decimal> в C# или Nullable(Of Decimal) в Visual Basic.

В синтаксисе Aggregate Into Sum() выражения запроса Visual Basic предложение преобразуется в вызов Sum.

См. также раздел

Применяется к