Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IList<T> view operators from Stephen Cleary #32

Open
GoogleCodeExporter opened this issue Apr 7, 2015 · 1 comment
Open

IList<T> view operators from Stephen Cleary #32

GoogleCodeExporter opened this issue Apr 7, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

Merge some or all of the operators from Stephen Cleary:

Operators for IEnumerable<T> lifted from List<T>/Array:
  int IndexOf<T>(this IEnumerable<T> source, T value)
  int IndexOf<T>(this IEnumerable<T> source, Func<T, bool> predicate) // 
List<T>.FindIndex
  int LastIndexOf<T>(this IEnumerable<T> source, T value)
  int LastIndexOf<T>(this IEnumerable<T> source, Func<T, bool> 
predicate) // List<T>.FindLastIndex

Operators for IList<T> lifted from List<T>/Array:
  IList<T> AsReadOnly<T>(this IList<T> list)
  void CopyTo<T>(this IList<T> list, int index, IList<T> destination, int 
destinationIndex, int count)
  void CopyTo<T>(this IList<T> list, IList<T> destination, int 
destinationIndex)
  void CopyTo<T>(this IList<T> list, IList<T> destination)
  int LastIndexOf<T>(this IList<T> list, T value)
  int LastIndexOf<T>(this IList<T> list, Func<T, bool> predicate) // 
List<T>.FindLastIndex

Operators optimized for IList<T> from Enumerable (.NET 3.5):
  IList<TResult> Select<TSource, TResult>(this IList<TSource> list, 
Func<TSource, TResult> selector)
  IList<TResult> Select<TSource, TResult>(this IList<TSource> list, 
Func<TSource, int, TResult> selector)
  IList<T> Skip<T>(this IList<T> list, int offset)
  IList<T> Take<T>(this IList<T> list, int count)
  IList<T> Reverse<T>(this IList<T> list)
  T Last(this IList<T> list, Func<T, bool> selector)
  T LastOrDefault(this IList<T> list, Func<T, bool> selector)

Operators optimized for IList<T> from EnumerableEx (Rx):
  IList<T> Repeat<T>(this IList<T> list, int count)
  IList<TResult> Zip<TFirst, TSecond, TResult>(this IList<TFirst> first, 
IList<TSecond> second, Func<TFirst, TSecond, TResult> zipper)
  IList<T> Memoize<T>(this IList<T> list)
  IList<T> MemoizeAll<T>(this IList<T> list)

Sources optimized for IList<T> from EnumerableEx (Rx):
  IList<T> Return<T>(T source)
  IList<T> Repeat<T>(T source, int count)
  IList<T> Concat<T>(params IList<T>[] others)
  IList<T> Concat<T>(IList<IList<T>> lists)
  IList<T> Generate<T>(int count, Func<T> generator)
  IList<T> Generate<T>(int count, Func<int, T> generator)

My own sequence/list operators:
 Zip (3-argument version):
  IEnumerable<TResult> Zip<TFirst, TSecond, TThird, TResult>(this 
IEnumerable<TFirst> first, IEnumerable<TSecond> second, 
IEnumerable<TThird> third, Func<TFirst, TSecond, TThird, TResult> zipper)
  IList<TResult> Zip<TFirst, TSecond, TThird, TResult>(this IList<TFirst> 
first, IList<TSecond> second, IList<TThird> third, Func<TFirst, TSecond, 
TThird, TResult> zipper)
 Flatten:
  IEnumerable<T> Flatten<T>(this IEnumerable<IEnumerable<T>> list)
  IList<T> FlattenList<T>(this IList<IList<T>> list)
 Select (bidirectional projection):
  IList<TResult> Select<TSource, TResult>(this IList<TSource> list, 
Func<TSource, TResult> selector, Func<TResult, TSource> reverseSelector)
 Slice:
  IList<T> Slice<T>(this IList<T> list, int offset, int count)
  IList<T> Step<T>(this IList<T> list, int step)
 CopyBackward:
  void CopyBackward<T>(this IList<T> list, int index, IList<T> 
destination, int destinationIndex, int count)

Original issue reported on code.google.com by [email protected] on 20 Nov 2009 at 3:29

@GoogleCodeExporter
Copy link
Author

I think this refers to stuff from Nito.LINQ:
http://nitolinq.codeplex.com/

Original comment by azizatif on 25 May 2012 at 4:58

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant