wasSharp – Diff between revs 43 and 46

Subversion Repositories:
Rev:
Show entire fileIgnore whitespace
Rev 43 Rev 46
Line 34... Line 34...
34 params Predicate<T>[] @case) 34 params Predicate<T>[] @case)
35 { 35 {
36 if (@case.Length % 2 != 0) 36 if (@case.Length % 2 != 0)
37 throw new ArgumentException("Pairs of predicates expected."); 37 throw new ArgumentException("Pairs of predicates expected.");
Line -... Line 38...
-   38  
38   39 var enumerable = query as IList<T> ?? query.ToList();
39 try 40 using (var iter = enumerable.GetEnumerator())
40 { -  
41 var enumerable = query as IList<T> ?? query.ToList(); 41 {
42 using (var iter = enumerable.GetEnumerator()) 42 while (iter.MoveNext())
43 { 43 {
-   44 var match = false;
44 while (iter.MoveNext()) 45 for (var i = 0; i < @case.Length; i += 2)
45 { 46 {
46 for (var i = 0; i < @case.Length; i += 2) 47 if (!@case[i].Invoke(iter.Current))
-   48 continue;
47 { 49  
48 if (@case[i].Invoke(iter.Current) && @case[i + 1].Invoke(iter.Current)) 50 if (@case[i + 1].Invoke(iter.Current))
-   51 return;
49 throw new Exception(); 52  
50 } 53 match = true;
-   54 }
-   55  
-   56 if (!match)
51 } 57 @default.Invoke(iter.Current);
52 } -  
53 @default.Invoke(enumerable.Last()); -  
54 } -  
55 catch -  
56 { 58 }
57 } 59 }
Line 58... Line 60...
58 } 60 }
59   61