Enhanced C#
Language of your choice: library documentation
Static Public Member Functions | List of all members
Loyc.Collections.LCExt Class Reference

Extension methods for Loyc Collection interfaces (such as IListSource<T>) and for Loyc Collection adapters (such as AsReadOnly<T>, which returns a CollectionAsReadOnly<T> adapter.) More...


Source files:

Remarks

Extension methods for Loyc Collection interfaces (such as IListSource<T>) and for Loyc Collection adapters (such as AsReadOnly<T>, which returns a CollectionAsReadOnly<T> adapter.)

The source code for adapter extension methods such as AsReadOnly() is now placed in the source file for each adapter class (e.g. CollectionAsReadOnly.cs) to make it easier to use parts of Loyc.Essentials rather than the entire library (other "decoupling" suggestions are welcome.)

Static Public Member Functions

static IReadOnlyCollection< T > AsReadOnly< T > (this ICollection< T > c)
 Treats any ICollection{T} object to IReadOnlyCollection{T}. More...
 
static IListSource< T > AsListSource< T > (this IList< T > c)
 Adapter: treats any IList{T} object as IListSource{T}. More...
 
static IListSource< T > AsListSource< T > (this IListAndListSource< T > c)
 
static ListSlice< T > Slice< T > (this IList< T > list, int start, int length=int.MaxValue)
 
static ListSlice< T > Slice< T > (this IListAndListSource< T > list, int start, int length=int.MaxValue)
 
static IList< T > AsList< T > (this IListSource< T > c)
 Converts any IListSource{T} object to a read-only IList{T}. More...
 
static ListSourceAsSparse< T > AsSparse< T > (this IListSource< T > list)
 Treats a non-sparse list as a read-only sparse list with no empty spaces. More...
 
static ISparseListSource< T > AsSparse< T > (this ISparseListSource< T > list)
 Returns list itself. This overload exists to prevent you from accidentally wrapping a sparse list in ListSourceAsSparse<T>, which would block access to knowledge of any empty spaces in the list. More...
 
static NegList< T > AsNegList< T > (this IList< T > list, int zeroOffset)
 
static NegList< T > AsNegList< T > (this IListAndListSource< T > list, int zeroOffset)
 
static NegListSlice< T > Slice< T > (this INegListSource< T > list, int start, int count=int.MaxValue)
 
static NegListSource< T > AsNegList< T > (this IListSource< T > list, int zeroOffset)
 
static ICollection< T > AsCollection< T > (this IReadOnlyCollection< T > c)
 Adapter: treats any IReadOnlyCollection{T} as a read-only ICollection{T}. More...
 
static IReadOnlyCollection< TResult > UpCast< T, TResult > (this IReadOnlyCollection< T > source)
 
static IListSource< TResult > UpCast< T, TResult > (this IListSource< T > source)
 
static string Join (this System.Collections.IEnumerable list, string separator)
 

Member Function Documentation

static ICollection<T> Loyc.Collections.LCExt.AsCollection< T > ( this IReadOnlyCollection< T >  c)
inlinestatic

Adapter: treats any IReadOnlyCollection{T} as a read-only ICollection{T}.

This method is named "AsCollection" and not "ToCollection" because, in contrast to methods like ToArray() and ToList(), it does not make a copy of the sequence, although it does create a new wrapper object.

static IList<T> Loyc.Collections.LCExt.AsList< T > ( this IListSource< T >  c)
inlinestatic

Converts any IListSource{T} object to a read-only IList{T}.

This method is named "AsList" and not "ToList" because because, in contrast to methods like ToArray(), it does not make a copy of the sequence, although it does create a new wrapper object if c does not implement IList<T>.

static IListSource<T> Loyc.Collections.LCExt.AsListSource< T > ( this IList< T >  c)
inlinestatic

Adapter: treats any IList{T} object as IListSource{T}.

This method is named "AsListSource" and not "ToListSource" because, in contrast to methods like ToArray() and ToList(), it does not make a copy of the sequence.

static IReadOnlyCollection<T> Loyc.Collections.LCExt.AsReadOnly< T > ( this ICollection< T >  c)
inlinestatic

Treats any ICollection{T} object to IReadOnlyCollection{T}.

This method is named "AsReadOnly" and not "ToReadOnly" because, in contrast to methods like ToArray(), and ToList() it does not make a copy of the sequence, although it does create a new wrapper object.

static ListSourceAsSparse<T> Loyc.Collections.LCExt.AsSparse< T > ( this IListSource< T >  list)
inlinestatic

Treats a non-sparse list as a read-only sparse list with no empty spaces.

static ISparseListSource<T> Loyc.Collections.LCExt.AsSparse< T > ( this ISparseListSource< T >  list)
inlinestatic

Returns list itself. This overload exists to prevent you from accidentally wrapping a sparse list in ListSourceAsSparse<T>, which would block access to knowledge of any empty spaces in the list.