wasSharp

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 42  →  ?path2? @ 43
/Linq.cs
@@ -38,7 +38,8 @@
 
try
{
using (var iter = query.GetEnumerator())
var enumerable = query as IList<T> ?? query.ToList();
using (var iter = enumerable.GetEnumerator())
{
while (iter.MoveNext())
{
@@ -49,7 +50,7 @@
}
}
}
@default.Invoke(query.Last());
@default.Invoke(enumerable.Last());
}
catch
{
@@ -270,10 +271,10 @@
var r = new List<T>(p);
return l.Count > r.Count
? l.Zip(r, (x, y) => x.Equals(y) ? default(T) : y)
.Concat(l.Skip(r.Count()))
.Concat(l.Skip(r.Count))
.Where(q => q != null && !q.Equals(default(T)))
: r.Zip(l, (x, y) => x.Equals(y) ? default(T) : y)
.Concat(r.Skip(l.Count()))
.Concat(r.Skip(l.Count))
.Where(q => q != null && !q.Equals(default(T)));
}
 
@@ -286,13 +287,17 @@
/// <returns>the first sequence excluding the second sequence</returns>
public static IEnumerable<T> SequenceExcept<T>(this IEnumerable<T> a, IEnumerable<T> b) where T : IEquatable<T>
{
var ea = a.GetEnumerator();
var eb = b.GetEnumerator();
while (ea.MoveNext())
using (var ea = a.GetEnumerator())
{
if (eb.MoveNext() && ea.Current.Equals(eb.Current))
continue;
yield return ea.Current;
using (var eb = b.GetEnumerator())
{
while (ea.MoveNext())
{
if (eb.MoveNext() && ea.Current.Equals(eb.Current))
continue;
yield return ea.Current;
}
}
}
}
}