annotate Source/Linq/Extensions.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using JetBrains.Annotations;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 namespace BLToolkit.Linq
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8 public static class Extensions
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 public static IEnumerable<TResult> Zip<TFirst,TSecond,TResult>(
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [NotNull] this IEnumerable<TFirst> first,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 [NotNull] IEnumerable<TSecond> second,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 [NotNull] Func<TFirst,TSecond,TResult> resultSelector)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 if (first == null) throw new ArgumentNullException("first");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 if (second == null) throw new ArgumentNullException("second");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 if (resultSelector == null) throw new ArgumentNullException("resultSelector");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 using (var e1 = first.GetEnumerator())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 using (var e2 = second.GetEnumerator())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 while (e1.MoveNext() && e2.MoveNext())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 yield return resultSelector(e1.Current, e2.Current);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 }