Kerbal Space Program  1.12.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Member Functions | Public Attributes | List of all members
Smooth.Slinq.Slinq< T, C > Struct Template Reference

Allocation-free enumerator with advanced, LINQ-like functionality. More...

Public Member Functions

LinkedHeadTail< T > AddTo (LinkedHeadTail< T > list)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<T> and returns the result. More...
 
IC AddTo< IC > (IC collection)
 Adds the remaining elements in the Slinq to the specified collection and returns the collection. More...
 
Disposable< IC > AddTo< IC > (Disposable< IC > collection)
 Adds the remaining elements in the Slinq to the specified collection and returns the collection. More...
 
LinkedHeadTail< K, T > AddTo< K > (LinkedHeadTail< K, T > list, DelegateFunc< T, K > selector)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> using the specified key selector and returns the result. More...
 
Lookup< K, T > AddTo< K > (Lookup< K, T > lookup, DelegateFunc< T, K > selector)
 Adds the remaining elements in the Slinq to the specified Lookup<K, T> using the specified key selector and returns the lookup. More...
 
LinkedHeadTail< K, T > AddTo< K, P > (LinkedHeadTail< K, T > list, DelegateFunc< T, P, K > selector, P parameter)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> using the specified key selector and returns the result. More...
 
Lookup< K, T > AddTo< K, P > (Lookup< K, T > lookup, DelegateFunc< T, P, K > selector, P parameter)
 Adds the remaining elements in the Slinq to the specified Lookup<K, T> using the specified key selector and returns the lookup. More...
 
IC AddTo< U, IC > (IC collection, DelegateFunc< T, U > selector)
 Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection. More...
 
Disposable< IC > AddTo< U, IC > (Disposable< IC > collection, DelegateFunc< T, U > selector)
 Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection. More...
 
IC AddTo< U, IC, P > (IC collection, DelegateFunc< T, P, U > selector, P parameter)
 Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection. More...
 
Disposable< IC > AddTo< U, IC, P > (Disposable< IC > collection, DelegateFunc< T, P, U > selector, P parameter)
 Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection. More...
 
LinkedHeadTail< T > AddToReverse (LinkedHeadTail< T > list)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<T> in reverse order and returns the result. More...
 
LinkedHeadTail< K, T > AddToReverse< K > (LinkedHeadTail< K, T > list, DelegateFunc< T, K > selector)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> in reverse order using the specified key selector and returns the result. More...
 
LinkedHeadTail< K, T > AddToReverse< K, P > (LinkedHeadTail< K, T > list, DelegateFunc< T, P, K > selector, P parameter)
 Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> in reverse order using the specified key selector and returns the result. More...
 
Aggregate (DelegateFunc< T, T, T > selector)
 Analog to Enumerable.Aggregate(). More...
 
Aggregate< U > (U seed, DelegateFunc< U, T, U > selector)
 Analog to Enumerable.Aggregate(). More...
 
Aggregate< U, P > (U seed, DelegateFunc< U, T, P, U > selector, P parameter)
 Analog to Enumerable.Aggregate(). More...
 
Aggregate< U, V > (U seed, DelegateFunc< U, T, U > selector, DelegateFunc< U, V > resultSelector)
 Analog to Enumerable.Aggregate(). More...
 
Option< T > AggregateOrNone (DelegateFunc< T, T, T > selector)
 Analog to Enumerable.Aggregate(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Option< T > AggregateOrNone< P > (DelegateFunc< T, T, P, T > selector, P parameter)
 Analog to Enumerable.Aggregate(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
AggregateWhile< U > (U seed, DelegateFunc< U, T, Option< U >> selector)
 Aggregates elements from the Slinq while the selector returns a Some option. More...
 
AggregateWhile< U, P > (U seed, DelegateFunc< U, T, P, Option< U >> selector, P parameter)
 Aggregates elements from the Slinq while the selector returns a Some option. More...
 
bool All (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.All(). More...
 
bool All< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Analog to Enumerable.All(). More...
 
bool Any ()
 Analog to Enumerable.Any(). More...
 
bool Any (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.Any(). More...
 
bool Any< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Analog to Enumerable.Any(). More...
 
bool Contains (T value)
 Analog to Enumerable.Contains(). More...
 
bool Contains (T value, IEqualityComparer< T > comparer)
 Analog to Enumerable.Contains(). More...
 
int Count ()
 Analog to Enumerable.Count(). More...
 
void Dispose ()
 Sets the current value of the Slinq to None and releases any shared resources held by the Slinq. If the Slinq is empty this will have no effect. More...
 
ElementAt (int index)
 Analog to Enumerable.ElementAt(). More...
 
ElementAtOrDefault (int index)
 Analog to Enumerable.ElementAtOrDefault(). More...
 
Option< T > ElementAtOrNone (int index)
 Analog to Enumerable.ElementAt(), but returns an option rather than throwing an exception if the element does not exist. More...
 
First ()
 Analog to Enumerable.First(). More...
 
First (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.First(). More...
 
FirstOrDefault ()
 Analog to Enumerable.FirstOrDefault(). More...
 
FirstOrDefault (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.FirstOrDefault(). More...
 
Option< T > FirstOrNone ()
 Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Option< T > FirstOrNone (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Option< T > FirstOrNone< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
void ForEach (DelegateAction< T > action)
 Performs the specified action on each remaining element in the Slinq. More...
 
void ForEach< P > (DelegateAction< T, P > action, P parameter)
 Performs the specified action on each remaining element in the Slinq with the specified parameter. More...
 
Last ()
 Analog to Enumerable.Last(). More...
 
Last (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.Last(). More...
 
LastOrDefault ()
 Analog to Enumerable.LastOrDefault(). More...
 
LastOrDefault (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.LastOrDefault(). More...
 
Option< T > LastOrNone ()
 Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Option< T > LastOrNone (DelegateFunc< T, bool > predicate)
 Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Option< T > LastOrNone< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty. More...
 
Max ()
 Analog to Enumerable.Max(). More...
 
Option< T > MaxOrNone ()
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone (IComparer< T > comparer)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone (Comparison< T > comparison)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K > (DelegateFunc< T, K > selector)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K > (DelegateFunc< T, K > selector, IComparer< K > comparer)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K > (DelegateFunc< T, K > selector, Comparison< K > comparison)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter, IComparer< K > comparer)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MaxOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter, Comparison< K > comparison)
 Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Min ()
 Analog to Enumerable.Min(). More...
 
Option< T > Min (IComparer< T > comparer)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone ()
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone (Comparison< T > comparison)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K > (DelegateFunc< T, K > selector)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K > (DelegateFunc< T, K > selector, IComparer< K > comparer)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K > (DelegateFunc< T, K > selector, Comparison< K > comparison)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter, IComparer< K > comparer)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
Option< T > MinOrNone< K, P > (DelegateFunc< T, P, K > selector, P parameter, Comparison< K > comparison)
 Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type. More...
 
void Remove ()
 Removes the current element from the underlying sequence and moves the Slinq to the next element in the enumeration. If the Slinq is empty this will have no effect. More...
 
Slinq< T, CRemove (int count)
 Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence. More...
 
Slinq< T, CRemove (int count, DelegateAction< T > then)
 Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence. More...
 
Slinq< T, CRemove< P > (int count, DelegateAction< T, P > then, P thenParameter)
 Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence. More...
 
int RemoveAll ()
 Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed. More...
 
int RemoveAll (DelegateAction< T > then)
 Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed. More...
 
int RemoveAll< P > (DelegateAction< T, P > then, P thenParameter)
 Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed. More...
 
Slinq< T, CRemoveAndReturn ()
 Removes the current element from the underlying sequence, moves the Slinq to the next element in the enumeration, and returns the Slinq. If the Slinq is empty this will have no effect. More...
 
Slinq< T, CRemoveWhile (DelegateFunc< T, bool > predicate)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
Slinq< T, CRemoveWhile (DelegateFunc< T, bool > predicate, DelegateAction< T > then)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
Slinq< T, CRemoveWhile< P > (DelegateFunc< T, bool > predicate, DelegateAction< T, P > then, P thenParameter)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
Slinq< T, CRemoveWhile< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
Slinq< T, CRemoveWhile< P > (DelegateFunc< T, P, bool > predicate, P parameter, DelegateAction< T > then)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
Slinq< T, CRemoveWhile< P, P2 > (DelegateFunc< T, P, bool > predicate, P parameter, DelegateAction< T, P2 > then, P2 thenParameter)
 Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true. More...
 
RemoveWhile< U > (U seed, DelegateFunc< U, T, Option< U >> selector)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
RemoveWhile< U > (U seed, DelegateFunc< U, T, Option< U >> selector, DelegateAction< T > then)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
RemoveWhile< U, P > (U seed, DelegateFunc< U, T, Option< U >> selector, DelegateAction< T, P > then, P thenParameter)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
RemoveWhile< U, P > (U seed, DelegateFunc< U, T, P, Option< U >> selector, P parameter)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
RemoveWhile< U, P > (U seed, DelegateFunc< U, T, P, Option< U >> selector, P parameter, DelegateAction< T > then)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
RemoveWhile< U, P, P2 > (U seed, DelegateFunc< U, T, P, Option< U >> selector, P parameter, DelegateAction< T, P2 > then, P2 thenParameter)
 Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option. More...
 
bool SequenceEqual< C2 > (Slinq< T, C2 > other)
 Analog to Enumerable.SequenceEqual(). More...
 
bool SequenceEqual< C2 > (Slinq< T, C2 > other, EqualityComparer< T > equalityComparer)
 Analog to Enumerable.SequenceEqual(). More...
 
bool SequenceEqual< T2, C2 > (Slinq< T2, C2 > other, DelegateFunc< T, T2, bool > predicate)
 Analog to Enumerable.SequenceEqual(). More...
 
Single ()
 Analog to Enumerable.Single(). More...
 
SingleOrDefault ()
 Analog to Enumerable.SingleOrDefault(). More...
 
Option< T > SingleOrNone ()
 Analog to Enumerable.Single(), but returns an option rather than throwing an exception if the Slinq is empty or contains more than one element. More...
 
void Skip ()
 Moves the Slinq to the next element in the enumeration. If the Slinq is empty this will have no effect. More...
 
Slinq< T, CSkip (int count)
 Enumerates up to the specified number of elements from the Slinq. More...
 
void SkipAll ()
 Enumerates the remaining elements of the Slinq. Useful if you want to force execution of the underlying chain. More...
 
Slinq< T, CSkipAndReturn ()
 Moves the Slinq to the next element in the enumeration and returns the Slinq. If the Slinq is empty this will have no effect. More...
 
Slinq< T, CSkipWhile (DelegateFunc< T, bool > predicate)
 Enumerates elements from the Slinq while the specified predicate returns true. More...
 
Slinq< T, CSkipWhile< P > (DelegateFunc< T, P, bool > predicate, P parameter)
 Enumerates elements from the Slinq while the specified predicate returns true. More...
 
SkipWhile< U > (U seed, DelegateFunc< U, T, Option< U >> selector)
 Aggregates elements from the Slinq while the specified selector returns a Some option. More...
 
SkipWhile< U, P > (U seed, DelegateFunc< U, T, P, Option< U >> selector, P parameter)
 Aggregates elements from the Slinq while the specified selector returns a Some option. More...
 
 Slinq (Mutator< T, C > skip, Mutator< T, C > remove, Mutator< T, C > dispose, C context)
 Part of the internal API. More...
 
Smooth.Algebraics.Tuple
< LinkedHeadTail< T >
, LinkedHeadTail< T > > 
SplitRight (int count)
 Splits the remaining elements into a pair of lists, with the first list containing elements starting from the current position of the Slinq and the second list containing up to the last count elements from the end of the Slinq. More...
 
LinkedHeadTail< T > ToLinked ()
 Converts the Slinq into a singly linked list. More...
 
LinkedHeadTail< K, T > ToLinked< K > (DelegateFunc< T, K > selector)
 Converts the Slinq into a singly linked key, value list using the specified key selector. More...
 
LinkedHeadTail< K, T > ToLinked< K, P > (DelegateFunc< T, P, K > selector, P parameter)
 Converts the Slinq into a singly linked key, value list using the specified key selector. More...
 
LinkedHeadTail< T > ToLinkedReverse ()
 Converts the Slinq into an order-reversed singly linked list. More...
 
LinkedHeadTail< K, T > ToLinkedReverse< K > (DelegateFunc< T, K > selector)
 Converts the Slinq into an order-reversed singly linked key, value list using the specified key selector. More...
 
LinkedHeadTail< K, T > ToLinkedReverse< K, P > (DelegateFunc< T, P, K > selector, P parameter)
 Converts the Slinq into an order-reversed singly linked key, value list using the specified key selector. More...
 
List< T > ToList ()
 Converts the Slinq into a List<T> borrowed from ListPool<T>. More...
 
Lookup< K, T > ToLookup< K > (DelegateFunc< T, K > selector)
 Converts the Slinq into a lookup using the specified key selector. More...
 
Lookup< K, T > ToLookup< K > (DelegateFunc< T, K > selector, IEqualityComparer< K > comparer)
 Converts the Slinq into a lookup using the specified key selector and equality comparer. More...
 
Lookup< K, T > ToLookup< K, P > (DelegateFunc< T, P, K > selector, P parameter)
 Converts the Slinq into a lookup using the specified key selector and equality comparer. More...
 
Lookup< K, T > ToLookup< K, P > (DelegateFunc< T, P, K > selector, P parameter, IEqualityComparer< K > comparer)
 Converts the Slinq into a lookup using the specified key selector and equality comparer. More...
 

Public Attributes

C context
 Part of the internal API. More...
 
Option< T > current
 Either a Some option containing the current value of the enumeration, or a None option if the enumeration is complete. More...
 
readonly Mutator< T, Cdispose
 Part of the internal API. More...
 
readonly Mutator< T, Cremove
 Part of the internal API. More...
 
readonly Mutator< T, Cskip
 Part of the internal API. More...
 

Detailed Description

Allocation-free enumerator with advanced, LINQ-like functionality.

The basic operations on a Slinq are:

current, which is either a Some option containing the current value of the enumeration, or a None option if the enumeration is complete.

Skip, which moves the Slinq to the next element in the enumeration.

Remove, which removes the current element from the underlying representation and moves the Slinq to the next element in the enumeration.

Dispose, which cancels the remainder of the enumeration and releases any shared resources held by the Slinq.

If a Skip or Remove call completes the enumeration, any shared resources held by the Slinq will be released automatically. Dispose only needs to be called when abandoning an incomplete enumeration.

Slinq<T, C> and its extension classes define many operations inspired by Linq and functional programming languages such as Scala and F#.

Slinq methods that take delegate parameter(s) come in two forms, a basic version and a version that takes an additional, user defined parameter of generic type P. This extra parameter is passed to the delegate(s) in order to capture any state required for the operation without the need for a closure.

Note: Because Slinqs are value types, it is possible to backtrack to an earlier point in an enumeration by storing multiple copies of a Slinq. This is not supported and will lead to unspecified behavior.

If DETECT_BACKTRACK is defined in Smooth.Slinq.Context.BacktrackDetector, backtracking will be detected and throw an exception. This should only be used for debugging purposes as it will severely reduce performance.

Constructor & Destructor Documentation

Smooth.Slinq.Slinq< T, C >.Slinq ( Mutator< T, C skip,
Mutator< T, C remove,
Mutator< T, C dispose,
C  context 
)
inline

Part of the internal API.

Member Function Documentation

LinkedHeadTail<T> Smooth.Slinq.Slinq< T, C >.AddTo ( LinkedHeadTail< T >  list)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<T> and returns the result.

This operation will consume and dispose the Slinq.

IC Smooth.Slinq.Slinq< T, C >.AddTo< IC > ( IC  collection)
inline

Adds the remaining elements in the Slinq to the specified collection and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<T> 
Disposable<IC> Smooth.Slinq.Slinq< T, C >.AddTo< IC > ( Disposable< IC >  collection)
inline

Adds the remaining elements in the Slinq to the specified collection and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<T> 
LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.AddTo< K > ( LinkedHeadTail< K, T >  list,
DelegateFunc< T, K >  selector 
)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> using the specified key selector and returns the result.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.AddTo< K > ( Lookup< K, T >  lookup,
DelegateFunc< T, K >  selector 
)
inline

Adds the remaining elements in the Slinq to the specified Lookup<K, T> using the specified key selector and returns the lookup.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.AddTo< K, P > ( LinkedHeadTail< K, T >  list,
DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> using the specified key selector and returns the result.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.AddTo< K, P > ( Lookup< K, T >  lookup,
DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Adds the remaining elements in the Slinq to the specified Lookup<K, T> using the specified key selector and returns the lookup.

This operation will consume and dispose the Slinq.

IC Smooth.Slinq.Slinq< T, C >.AddTo< U, IC > ( IC  collection,
DelegateFunc< T, U >  selector 
)
inline

Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<U> 
Disposable<IC> Smooth.Slinq.Slinq< T, C >.AddTo< U, IC > ( Disposable< IC >  collection,
DelegateFunc< T, U >  selector 
)
inline

Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<U> 
IC Smooth.Slinq.Slinq< T, C >.AddTo< U, IC, P > ( IC  collection,
DelegateFunc< T, P, U >  selector,
parameter 
)
inline

Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<U> 
Disposable<IC> Smooth.Slinq.Slinq< T, C >.AddTo< U, IC, P > ( Disposable< IC >  collection,
DelegateFunc< T, P, U >  selector,
parameter 
)
inline

Adds the remaining elements in the Slinq to the specified collection using the specified selector and returns the collection.

This operation will consume and dispose the Slinq.

Type Constraints
IC :ICollection<U> 
LinkedHeadTail<T> Smooth.Slinq.Slinq< T, C >.AddToReverse ( LinkedHeadTail< T >  list)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<T> in reverse order and returns the result.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.AddToReverse< K > ( LinkedHeadTail< K, T >  list,
DelegateFunc< T, K >  selector 
)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> in reverse order using the specified key selector and returns the result.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.AddToReverse< K, P > ( LinkedHeadTail< K, T >  list,
DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Adds the remaining elements in the Slinq to the specified LinkedHeadTail<K, T> in reverse order using the specified key selector and returns the result.

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Aggregate ( DelegateFunc< T, T, T >  selector)
inline

Analog to Enumerable.Aggregate().

This operation will consume and dispose the Slinq.

U Smooth.Slinq.Slinq< T, C >.Aggregate< U > ( seed,
DelegateFunc< U, T, U >  selector 
)
inline

Analog to Enumerable.Aggregate().

This operation will consume and dispose the Slinq.

U Smooth.Slinq.Slinq< T, C >.Aggregate< U, P > ( seed,
DelegateFunc< U, T, P, U >  selector,
parameter 
)
inline

Analog to Enumerable.Aggregate().

This operation will consume and dispose the Slinq.

V Smooth.Slinq.Slinq< T, C >.Aggregate< U, V > ( seed,
DelegateFunc< U, T, U >  selector,
DelegateFunc< U, V >  resultSelector 
)
inline

Analog to Enumerable.Aggregate().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.AggregateOrNone ( DelegateFunc< T, T, T >  selector)
inline

Analog to Enumerable.Aggregate(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.AggregateOrNone< P > ( DelegateFunc< T, T, P, T >  selector,
parameter 
)
inline

Analog to Enumerable.Aggregate(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

U Smooth.Slinq.Slinq< T, C >.AggregateWhile< U > ( seed,
DelegateFunc< U, T, Option< U >>  selector 
)
inline

Aggregates elements from the Slinq while the selector returns a Some option.

This operation will consume and dispose the Slinq.

U Smooth.Slinq.Slinq< T, C >.AggregateWhile< U, P > ( seed,
DelegateFunc< U, T, P, Option< U >>  selector,
parameter 
)
inline

Aggregates elements from the Slinq while the selector returns a Some option.

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.All ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.All().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.All< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Analog to Enumerable.All().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.Any ( )
inline

Analog to Enumerable.Any().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.Any ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.Any().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.Any< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Analog to Enumerable.Any().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.Contains ( value)
inline

Analog to Enumerable.Contains().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.Contains ( value,
IEqualityComparer< T >  comparer 
)
inline

Analog to Enumerable.Contains().

This operation will consume and dispose the Slinq.

int Smooth.Slinq.Slinq< T, C >.Count ( )
inline

Analog to Enumerable.Count().

This operation will consume and dispose the Slinq.

void Smooth.Slinq.Slinq< T, C >.Dispose ( )
inline

Sets the current value of the Slinq to None and releases any shared resources held by the Slinq. If the Slinq is empty this will have no effect.

Slinqs are automatically disposed when they become empty, but if you are done with a Slinq that still contains values, you must call Dispose to ensure the release and/or disposal of any resources held by the Slinq.

T Smooth.Slinq.Slinq< T, C >.ElementAt ( int  index)
inline

Analog to Enumerable.ElementAt().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.ElementAtOrDefault ( int  index)
inline

Analog to Enumerable.ElementAtOrDefault().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.ElementAtOrNone ( int  index)
inline

Analog to Enumerable.ElementAt(), but returns an option rather than throwing an exception if the element does not exist.

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.First ( )
inline

Analog to Enumerable.First().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.First ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.First().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.FirstOrDefault ( )
inline

Analog to Enumerable.FirstOrDefault().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.FirstOrDefault ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.FirstOrDefault().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.FirstOrNone ( )
inline

Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.FirstOrNone ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.FirstOrNone< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Analog to Enumerable.First(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

void Smooth.Slinq.Slinq< T, C >.ForEach ( DelegateAction< T >  action)
inline

Performs the specified action on each remaining element in the Slinq.

This operation will consume and dispose the Slinq.

void Smooth.Slinq.Slinq< T, C >.ForEach< P > ( DelegateAction< T, P >  action,
parameter 
)
inline

Performs the specified action on each remaining element in the Slinq with the specified parameter.

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Last ( )
inline

Analog to Enumerable.Last().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Last ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.Last().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.LastOrDefault ( )
inline

Analog to Enumerable.LastOrDefault().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.LastOrDefault ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.LastOrDefault().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.LastOrNone ( )
inline

Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.LastOrNone ( DelegateFunc< T, bool >  predicate)
inline

Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.LastOrNone< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Analog to Enumerable.Last(), but returns an option rather than throwing an exception if the Slinq is empty.

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Max ( )
inline

Analog to Enumerable.Max().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone ( )
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone ( IComparer< T >  comparer)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone ( Comparison< T >  comparison)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K > ( DelegateFunc< T, K >  selector)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K > ( DelegateFunc< T, K >  selector,
IComparer< K >  comparer 
)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K > ( DelegateFunc< T, K >  selector,
Comparison< K >  comparison 
)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter,
IComparer< K >  comparer 
)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MaxOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter,
Comparison< K >  comparison 
)
inline

Analog to Enumerable.Max(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Min ( )
inline

Analog to Enumerable.Min().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.Min ( IComparer< T >  comparer)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone ( )
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone ( Comparison< T >  comparison)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K > ( DelegateFunc< T, K >  selector)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K > ( DelegateFunc< T, K >  selector,
IComparer< K >  comparer 
)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K > ( DelegateFunc< T, K >  selector,
Comparison< K >  comparison 
)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter,
IComparer< K >  comparer 
)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.MinOrNone< K, P > ( DelegateFunc< T, P, K >  selector,
parameter,
Comparison< K >  comparison 
)
inline

Analog to Enumerable.Min(), but returns an option rather than throwing an exception if the Slinq is empty and T is a value type.

This operation will consume and dispose the Slinq.

void Smooth.Slinq.Slinq< T, C >.Remove ( )
inline

Removes the current element from the underlying sequence and moves the Slinq to the next element in the enumeration. If the Slinq is empty this will have no effect.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.Remove ( int  count)
inline

Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence.

If count is greater than or equal to the number of elements remaining, all the remaining elements will be removed.

If count is less than or equal to zero, no elements will be removed.

After perfoming this operation, the Slinq will be positioned count elements further along the enumeration.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.Remove ( int  count,
DelegateAction< T >  then 
)
inline

Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence.

After an element is removed the specified then action will be called with the element.

If count is greater than or equal to the number of elements remaining, all the remaining elements will be removed.

If count is less than or equal to zero, no elements will be removed.

After perfoming this operation, the Slinq will be positioned count elements further along the enumeration.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.Remove< P > ( int  count,
DelegateAction< T, P >  then,
thenParameter 
)
inline

Enumerates up to the specified number of elements from the Slinq and removes them from the underlying sequence.

After an element is removed the specified then action will be called with the element and the specified then parameter.

If count is greater than or equal to the number of elements remaining, all the remaining elements will be removed.

If count is less than or equal to zero, no elements will be removed.

After perfoming this operation, the Slinq will be positioned count elements further along the enumeration.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
int Smooth.Slinq.Slinq< T, C >.RemoveAll ( )
inline

Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed.

This operation will consume and dispose the Slinq.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
int Smooth.Slinq.Slinq< T, C >.RemoveAll ( DelegateAction< T >  then)
inline

Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed.

After an element is removed the specified then action will be called with the element.

This operation will consume and dispose the Slinq.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
int Smooth.Slinq.Slinq< T, C >.RemoveAll< P > ( DelegateAction< T, P >  then,
thenParameter 
)
inline

Enumerates the remaining elements from the Slinq, removes them from the underlying sequence, and returns the number of elements removed.

After an element is removed the specified then action will be called with the element and the specified then parameter.

This operation will consume and dispose the Slinq.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveAndReturn ( )
inline

Removes the current element from the underlying sequence, moves the Slinq to the next element in the enumeration, and returns the Slinq. If the Slinq is empty this will have no effect.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile ( DelegateFunc< T, bool >  predicate)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile ( DelegateFunc< T, bool >  predicate,
DelegateAction< T >  then 
)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After an element is removed the specified then action will be called with the element.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile< P > ( DelegateFunc< T, bool >  predicate,
DelegateAction< T, P >  then,
thenParameter 
)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After an element is removed the specified then action will be called with the element and the specifed then parameter.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile< P > ( DelegateFunc< T, P, bool >  predicate,
parameter,
DelegateAction< T >  then 
)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After an element is removed the specified then action will be called with the element.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
Slinq<T, C> Smooth.Slinq.Slinq< T, C >.RemoveWhile< P, P2 > ( DelegateFunc< T, P, bool >  predicate,
parameter,
DelegateAction< T, P2 >  then,
P2  thenParameter 
)
inline

Enumerates elements from the Slinq and removes them from the underlying sequence while the specified predicate returns true.

After an element is removed the specified then action will be called with the element and the specified then parameter.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U > ( seed,
DelegateFunc< U, T, Option< U >>  selector 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U > ( seed,
DelegateFunc< U, T, Option< U >>  selector,
DelegateAction< T >  then 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After an element is removed the specified then action will be called with the element.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U, P > ( seed,
DelegateFunc< U, T, Option< U >>  selector,
DelegateAction< T, P >  then,
thenParameter 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After an element is removed the specified then action will be called with the element and the specified then parameter.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U, P > ( seed,
DelegateFunc< U, T, P, Option< U >>  selector,
parameter 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the selector returns None.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U, P > ( seed,
DelegateFunc< U, T, P, Option< U >>  selector,
parameter,
DelegateAction< T >  then 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the selector returns None.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
U Smooth.Slinq.Slinq< T, C >.RemoveWhile< U, P, P2 > ( seed,
DelegateFunc< U, T, P, Option< U >>  selector,
parameter,
DelegateAction< T, P2 >  then,
P2  thenParameter 
)
inline

Aggregates elements from the Slinq and removes them from the underlying sequence while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the selector returns None.

Exceptions
NotSupportedExceptionThe Slinq or an underlying Slinq in the chain does not support element removal.
bool Smooth.Slinq.Slinq< T, C >.SequenceEqual< C2 > ( Slinq< T, C2 >  other)
inline

Analog to Enumerable.SequenceEqual().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.SequenceEqual< C2 > ( Slinq< T, C2 >  other,
EqualityComparer< T >  equalityComparer 
)
inline

Analog to Enumerable.SequenceEqual().

This operation will consume and dispose the Slinq.

bool Smooth.Slinq.Slinq< T, C >.SequenceEqual< T2, C2 > ( Slinq< T2, C2 >  other,
DelegateFunc< T, T2, bool >  predicate 
)
inline

Analog to Enumerable.SequenceEqual().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.Single ( )
inline

Analog to Enumerable.Single().

This operation will consume and dispose the Slinq.

T Smooth.Slinq.Slinq< T, C >.SingleOrDefault ( )
inline

Analog to Enumerable.SingleOrDefault().

This operation will consume and dispose the Slinq.

Option<T> Smooth.Slinq.Slinq< T, C >.SingleOrNone ( )
inline

Analog to Enumerable.Single(), but returns an option rather than throwing an exception if the Slinq is empty or contains more than one element.

This operation will consume and dispose the Slinq.

void Smooth.Slinq.Slinq< T, C >.Skip ( )
inline

Moves the Slinq to the next element in the enumeration. If the Slinq is empty this will have no effect.

Slinq<T, C> Smooth.Slinq.Slinq< T, C >.Skip ( int  count)
inline

Enumerates up to the specified number of elements from the Slinq.

If count is greater than or equal to the number of elements remaining, all the remaining elements will be enumerated.

If count is less than or equal to zero, no elements will be enumerated.

After perfoming this operation, the Slinq will be positioned count elements further along the enumeration.

void Smooth.Slinq.Slinq< T, C >.SkipAll ( )
inline

Enumerates the remaining elements of the Slinq. Useful if you want to force execution of the underlying chain.

This operation will consume and dispose the Slinq.

Slinq<T, C> Smooth.Slinq.Slinq< T, C >.SkipAndReturn ( )
inline

Moves the Slinq to the next element in the enumeration and returns the Slinq. If the Slinq is empty this will have no effect.

Slinq<T, C> Smooth.Slinq.Slinq< T, C >.SkipWhile ( DelegateFunc< T, bool >  predicate)
inline

Enumerates elements from the Slinq while the specified predicate returns true.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

Slinq<T, C> Smooth.Slinq.Slinq< T, C >.SkipWhile< P > ( DelegateFunc< T, P, bool >  predicate,
parameter 
)
inline

Enumerates elements from the Slinq while the specified predicate returns true.

After perfoming this operation, the Slinq will be positioned on the first element for which the predicate returns false.

U Smooth.Slinq.Slinq< T, C >.SkipWhile< U > ( seed,
DelegateFunc< U, T, Option< U >>  selector 
)
inline

Aggregates elements from the Slinq while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the selector returns None.

U Smooth.Slinq.Slinq< T, C >.SkipWhile< U, P > ( seed,
DelegateFunc< U, T, P, Option< U >>  selector,
parameter 
)
inline

Aggregates elements from the Slinq while the specified selector returns a Some option.

After perfoming this operation, the Slinq will be positioned on the first element for which the selector returns None.

Smooth.Algebraics.Tuple<LinkedHeadTail<T>, LinkedHeadTail<T> > Smooth.Slinq.Slinq< T, C >.SplitRight ( int  count)
inline

Splits the remaining elements into a pair of lists, with the first list containing elements starting from the current position of the Slinq and the second list containing up to the last count elements from the end of the Slinq.

If count is greater than or equal to the number of elements remaining, the first list will be empty and the second list will contain all the remaining elements.

If count is less than or equal to zero, the first list will contain all the remaining elements and the second list will be empty.

This operation will consume and dispose the Slinq.

LinkedHeadTail<T> Smooth.Slinq.Slinq< T, C >.ToLinked ( )
inline

Converts the Slinq into a singly linked list.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.ToLinked< K > ( DelegateFunc< T, K >  selector)
inline

Converts the Slinq into a singly linked key, value list using the specified key selector.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.ToLinked< K, P > ( DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Converts the Slinq into a singly linked key, value list using the specified key selector.

This operation will consume and dispose the Slinq.

LinkedHeadTail<T> Smooth.Slinq.Slinq< T, C >.ToLinkedReverse ( )
inline

Converts the Slinq into an order-reversed singly linked list.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.ToLinkedReverse< K > ( DelegateFunc< T, K >  selector)
inline

Converts the Slinq into an order-reversed singly linked key, value list using the specified key selector.

This operation will consume and dispose the Slinq.

LinkedHeadTail<K, T> Smooth.Slinq.Slinq< T, C >.ToLinkedReverse< K, P > ( DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Converts the Slinq into an order-reversed singly linked key, value list using the specified key selector.

This operation will consume and dispose the Slinq.

List<T> Smooth.Slinq.Slinq< T, C >.ToList ( )
inline

Converts the Slinq into a List<T> borrowed from ListPool<T>.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.ToLookup< K > ( DelegateFunc< T, K >  selector)
inline

Converts the Slinq into a lookup using the specified key selector.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.ToLookup< K > ( DelegateFunc< T, K >  selector,
IEqualityComparer< K >  comparer 
)
inline

Converts the Slinq into a lookup using the specified key selector and equality comparer.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.ToLookup< K, P > ( DelegateFunc< T, P, K >  selector,
parameter 
)
inline

Converts the Slinq into a lookup using the specified key selector and equality comparer.

This operation will consume and dispose the Slinq.

Lookup<K, T> Smooth.Slinq.Slinq< T, C >.ToLookup< K, P > ( DelegateFunc< T, P, K >  selector,
parameter,
IEqualityComparer< K >  comparer 
)
inline

Converts the Slinq into a lookup using the specified key selector and equality comparer.

This operation will consume and dispose the Slinq.

Member Data Documentation

C Smooth.Slinq.Slinq< T, C >.context

Part of the internal API.

Option<T> Smooth.Slinq.Slinq< T, C >.current

Either a Some option containing the current value of the enumeration, or a None option if the enumeration is complete.

Note: This is a public field for reasons concerning the internal API and should not be modified by user code.

readonly Mutator<T, C> Smooth.Slinq.Slinq< T, C >.dispose

Part of the internal API.

readonly Mutator<T, C> Smooth.Slinq.Slinq< T, C >.remove

Part of the internal API.

readonly Mutator<T, C> Smooth.Slinq.Slinq< T, C >.skip

Part of the internal API.


The documentation for this struct was generated from the following file: