Enumerable.Sum Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Berechnet die Summe einer Sequenz von numerischen Werten.
Überlädt
Sum(IEnumerable<Decimal>) |
Berechnet die Summe einer Sequenz von Decimal-Werten |
Sum(IEnumerable<Double>) |
Berechnet die Summe einer Sequenz von Double-Werten |
Sum(IEnumerable<Int32>) |
Berechnet die Summe einer Sequenz von Int32-Werten |
Sum(IEnumerable<Int64>) |
Berechnet die Summe einer Sequenz von Int64-Werten |
Sum(IEnumerable<Nullable<Decimal>>) |
Berechnet die Summe einer Sequenz von Decimal-Werten, die NULL zulassen |
Sum(IEnumerable<Nullable<Double>>) |
Berechnet die Summe einer Sequenz von Double-Werten, die NULL zulassen |
Sum(IEnumerable<Nullable<Int32>>) |
Berechnet die Summe einer Sequenz von Int32-Werten, die NULL zulassen |
Sum(IEnumerable<Nullable<Int64>>) |
Berechnet die Summe einer Sequenz von Int64-Werten, die NULL zulassen |
Sum(IEnumerable<Nullable<Single>>) |
Berechnet die Summe einer Sequenz von Single-Werten, die NULL zulassen |
Sum(IEnumerable<Single>) |
Berechnet die Summe einer Sequenz von Single-Werten |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) |
Berechnet die Summe einer Sequenz von Single-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>) |
Berechnet die Summe einer Sequenz von Single-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>) |
Berechnet die Summe einer Sequenz von Int64-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>) |
Berechnet die Summe einer Sequenz von Int32-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>) |
Berechnet die Summe einer Sequenz von Double-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) |
Berechnet die Summe einer Sequenz von Double-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>) |
Berechnet die Summe einer Sequenz von Int64-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>) |
Berechnet die Summe einer Sequenz von Int32-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>) |
Berechnet die Summe einer Sequenz von Decimal-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>) |
Berechnet die Summe einer Sequenz von Decimal-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden |
Sum(IEnumerable<Decimal>)
Berechnet die Summe einer Sequenz von Decimal-Werten
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
Parameter
- source
- IEnumerable<Decimal>
Eine Sequenz von Decimal-Werten, deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Die Sum(IEnumerable<Decimal>) Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Double>)
Berechnet die Summe einer Sequenz von Double-Werten
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
Parameter
- source
- IEnumerable<Double>
Eine Sequenz von Double-Werten, deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Int32>)
Berechnet die Summe einer Sequenz von Int32-Werten
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
Parameter
- source
- IEnumerable<Int32>
Eine Sequenz von Int32-Werten, deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Int64>)
Berechnet die Summe einer Sequenz von Int64-Werten
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
Parameter
- source
- IEnumerable<Int64>
Eine Sequenz von Int64-Werten, deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Nullable<Decimal>>)
Berechnet die Summe einer Sequenz von Decimal-Werten, die NULL zulassen
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)
Parameter
- source
- IEnumerable<Nullable<Decimal>>
Eine Sequenz von Decimal-Werten, die NULL zulassen, und deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Nullable<Double>>)
Berechnet die Summe einer Sequenz von Double-Werten, die NULL zulassen
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)
Parameter
- source
- IEnumerable<Nullable<Double>>
Eine Sequenz von Double-Werten, die NULL zulassen, und deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Nullable<Int32>>)
Berechnet die Summe einer Sequenz von Int32-Werten, die NULL zulassen
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)
Parameter
- source
- IEnumerable<Nullable<Int32>>
Eine Sequenz von Int32-Werten, die NULL zulassen, und deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Nullable<Int64>>)
Berechnet die Summe einer Sequenz von Int64-Werten, die NULL zulassen
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)
Parameter
- source
- IEnumerable<Nullable<Int64>>
Eine Sequenz von Int64-Werten, die NULL zulassen, und deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Die Summe ist größer als MaxValue.
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Nullable<Single>>)
Berechnet die Summe einer Sequenz von Single-Werten, die NULL zulassen
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)
Parameter
- source
- IEnumerable<Nullable<Single>>
Eine Sequenz von Single-Werten, die NULL zulassen, und deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie zum Summieren der Werte einer Sequenz verwendet Sum(IEnumerable<Nullable<Single>>) werden.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum(IEnumerable<Single>)
Berechnet die Summe einer Sequenz von Single-Werten
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
Parameter
- source
- IEnumerable<Single>
Eine Sequenz von Single-Werten, deren Summe berechnet werden soll
Gibt zurück
Die Summe der Werte in der Sequenz
Ausnahmen
source
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie sie zum Summieren der Werte einer Sequenz verwendet Sum(IEnumerable<Single>) werden.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>)
Berechnet die Summe einer Sequenz von Single-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) die projizierten Werte einer Sequenz zusammengefasst werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Single>) Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
dass die Elemente source
eines numerischen Typs in einen numerischen Typ projiziert werden.Single
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Single>>)
Berechnet die Summe einer Sequenz von Single-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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)
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) die projizierten Werte einer Sequenz zusammengefasst werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs, insbesondere Nullable<Single>
in C# oder Nullable(Of Single)
in Visual Basic, projiziert.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int64>>)
Berechnet die Summe einer Sequenz von Int64-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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)
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs, insbesondere Nullable<Int64>
in C# oder Nullable(Of Int64)
in Visual Basic
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Int32>>)
Berechnet die Summe einer Sequenz von Int32-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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)
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs, insbesondere Nullable<Int32>
in C# oder Nullable(Of Int32)
in Visual Basic, projiziert.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Double>>)
Berechnet die Summe einer Sequenz von Double-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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)
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die .null
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs, insbesondere Nullable<Double>
in C# oder Nullable(Of Double)
in Visual Basic, projiziert.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>)
Berechnet die Summe einer Sequenz von Double-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs projiziert, insbesondere Double.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int64>)
Berechnet die Summe einer Sequenz von Int64-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs projiziert, insbesondere Int64.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Int32>)
Berechnet die Summe einer Sequenz von Int32-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs projiziert, insbesondere Int32.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Decimal>)
Berechnet die Summe einer Sequenz von Decimal-Werten, die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs projiziert, insbesondere Decimal.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.
Siehe auch
Gilt für:
Sum<TSource>(IEnumerable<TSource>, Func<TSource,Nullable<Decimal>>)
Berechnet die Summe einer Sequenz von Decimal-Werten, die NULL zulassen, und die durch den Aufruf einer Transformationsfunktion für jedes Element der Eingabesequenz ermittelt werden
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)
Typparameter
- TSource
Der Typ der Elemente von source
.
Parameter
- source
- IEnumerable<TSource>
Eine Sequenz von Werten, die zum Berechnen einer Summe verwendet werden
Eine Transformationsfunktion, die auf jedes Element angewendet werden soll.
Gibt zurück
Die Summe der projizierten Werte
Ausnahmen
source
oder selector
ist null
.
Die Summe ist größer als MaxValue.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Sum<TSource>(IEnumerable<TSource>, Func<TSource,Double>) projizierten Werte einer Sequenz summiert werden.
Hinweis
In diesem Codebeispiel wird eine Überladung der -Methode verwendet, die sich von der spezifischen Überladung, die in diesem Artikel beschrieben wird, unterscheiden. Um das Beispiel auf die -Überladung zu erweitern, die in diesem Artikel beschrieben wird, ändern Sie den Text der selector
Funktion.
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
Hinweise
Diese Methode gibt null zurück, wenn source
keine Elemente enthalten sind.
Das Ergebnis enthält keine Werte, die vorhanden sind null
.
Sie können diese Methode auf eine Sequenz beliebiger Werte anwenden, wenn Sie eine Funktion bereitstellen, selector
die die Elemente eines source
numerischen Typs, insbesondere Nullable<Decimal>
in C# oder Nullable(Of Decimal)
in Visual Basic, projiziert.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Aggregate Into Sum()
Klausel in einen Aufruf von Sum.