wasSharp
/Linq.cs |
@@ -36,25 +36,27 @@ |
if (@case.Length % 2 != 0) |
throw new ArgumentException("Pairs of predicates expected."); |
|
try |
var enumerable = query as IList<T> ?? query.ToList(); |
using (var iter = enumerable.GetEnumerator()) |
{ |
var enumerable = query as IList<T> ?? query.ToList(); |
using (var iter = enumerable.GetEnumerator()) |
while (iter.MoveNext()) |
{ |
while (iter.MoveNext()) |
var match = false; |
for (var i = 0; i < @case.Length; i += 2) |
{ |
for (var i = 0; i < @case.Length; i += 2) |
{ |
if (@case[i].Invoke(iter.Current) && @case[i + 1].Invoke(iter.Current)) |
throw new Exception(); |
} |
if (!@case[i].Invoke(iter.Current)) |
continue; |
|
if (@case[i + 1].Invoke(iter.Current)) |
return; |
|
match = true; |
} |
|
if (!match) |
@default.Invoke(iter.Current); |
} |
@default.Invoke(enumerable.Last()); |
} |
catch |
{ |
} |
} |
|
/////////////////////////////////////////////////////////////////////////// |