Computes the sum of a view of nullable Single values that are obtained by invoking a transform function on each element of the source view.

Namespace:  C1.LiveLinq
Assembly:  C1.LiveLinq (in C1.LiveLinq.dll)

Syntax

C#
public static AggregationView<TSource, Nullable<float>> LiveSum<TSource>(
	this View<TSource> source,
	Expression<Func<TSource, Nullable<float>>> selector
)
Visual Basic
<ExtensionAttribute> _
Public Shared Function LiveSum(Of TSource) ( _
	source As View(Of TSource), _
	selector As Expression(Of Func(Of TSource, Nullable(Of Single))) _
) As AggregationView(Of TSource, Nullable(Of Single))

Parameters

source
Type: C1.LiveLinq.LiveViews..::..View<(Of <(<'TSource>)>)>
A view containing the values to calculate the sum of.
selector
Type: System.Linq.Expressions..::..Expression<(Of <(<'Func<(Of <(<'TSource, Nullable<(Of <(<'Single>)>)>>)>)>>)>)>
A transform function to apply to each element.

Type Parameters

TSource
The type of the elements of source.

Return Value

A view representing the sum of the values.

Remarks

If the source is empty or contains only nulls, the sum value is zero.

It is possible to use standard LINQ query operator Sum instead of LiveSum. Both are "live" in the sense that they are recomputed automatically when any change occurs in the source. The difference is that Sum will every time loop through the entire source collection and aggregate it from scratch, whereas LiveSum will use a more performant algorithm, will maintain its value incrementally, processing only those source items that actually changed.

See Also