wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 45  →  ?path2? @ 46
/Linq.cs
@@ -36,26 +36,28 @@
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())
{
while (iter.MoveNext())
{
var match = false;
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
{
}
}
 
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2017 Wizardry and Steamworks - License: GNU GPLv3 //