blob: ec6bfa04abf78c22e55f0fd10abc63442a9194da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
using System;
using System.Collections.Generic;
namespace Marina.Infrastructure {
public class RichList< T > : List< T >, IRichList< T > {
public RichList( IEnumerable< T > collection )
: base( collection ) {}
public RichList( int capacity )
: base( capacity ) {}
public RichList() {}
public IEnumerable< Output > MapAllUsing< Output >( IMapper< T, Output > mapper ) {
return ConvertAll< Output >( mapper.MapFrom );
}
public IEnumerable< T > All() {
foreach ( T t in this ) {
yield return t;
}
}
public new IRichList< TOutput > ConvertAll< TOutput >( Converter< T, TOutput > converter ) {
return new RichList< TOutput >( base.ConvertAll( converter ) );
}
public new IRichList< T > FindAll( Predicate< T > match ) {
return new RichList< T >( base.FindAll( match ) );
}
public new IRichList< T > GetRange( int index, int count ) {
return new RichList< T >( base.GetRange( index, count ) );
}
public void VisitAllItemWith( IVisitor< T > visitor ) {
ForEach( visitor.Visit );
}
public Result GetResultOfVisitingAllItemsWith< Result >( IValueReturningVisitor< Result, T > visitor ) {
VisitAllItemWith( visitor );
return visitor.GetResult( );
}
}
}
|