wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 45  →  ?path2? @ 46
/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
{
}
}
 
///////////////////////////////////////////////////////////////////////////