[.NET] CastingEnumerable(3)
22 }
23
24
25 // Member
26 public IEnumerator<TResult> GetEnumerator()
27 {
28 return new CastingEnumerator<TResult, TSource>(_sourceEnumerable.GetEnumerator(), _enumerableDelegate);
29 }
30
31 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
32 {
33 return this.GetEnumerator();
34 }
35 }
36 }
view source
01 namespace CLK.Collections
02 {
03 public class CastingEnumerator<TResult, TSource> : IEnumerator<TResult>
04 {
05 //Properties
06 private readonly IEnumerator<TSource> _sourceEnumerator;
07
08 private readonly CastingEnumerableDelegate<TResult, TSource> _enumerableDelegate;
09
10 private TResult _currentResult = default(TResult);
11
12
13 // Construction
14 public CastingEnumerator(IEnumerator<TSource> sourceEnumerator, CastingEnumerableDelegate<TResult, TSource> enumerableDelegate)
15 {
16 #region Require
17
18 if (sourceEnumerator == null) throw new ArgumentNullException();
19 if (enumerableDelegate == null) throw new ArgumentNullException();
20
21 #endregion
22 _sourceEnumerator = sourceEnumerator;
23 _enumerableDelegate = enumerableDelegate;
24 }
25
26 public virtual void Dispose()
27 {
相关新闻>>
- 发表评论
-
- 最新评论 更多>>