Linq101-CustomSequence
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 5 namespace Linq101 6 { 7 class CustomSequence 8 { 9 public void Linq98() 10 { 11 int[] vectorA = { 0, 2, 4, 5, 6 }; 12 int[] vectorB = { 1, 3, 5, 7, 8 }; 13 14 int result = vectorA.Combine(vectorB, (a, b) => a * b).Sum(); 15 Console.WriteLine(result); 16 } 17 } 18 19 public static class CustomSequenceOperators 20 { 21 public static IEnumerable<int> Combine(this IEnumerable<int> first, IEnumerable<int> second, Func<int, int, int> func) 22 { 23 //List<int> list=new List<int>(); 24 using (IEnumerator<int> e1 = first.GetEnumerator(), e2 = second.GetEnumerator()) 25 { 26 while (e1.MoveNext() && e2.MoveNext()) 27 { 28 yield return func(e1.Current, e2.Current); 29 //list.Add(func(e1.Current, e2.Current)); 30 } 31 } 32 //return list; 33 } 34 } 35 }