using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
static class MyLinq
{
public static IEnumerable<int> Where(this int[] arr, Func<int, bool> cond)
{
int[] result = new int[arr.Length];
int j = 0;
for (int i = 0; i < arr.Length; i++)
if (cond(arr[i]))
result[j++] = arr[i];
Array.Resize(ref result, j);
return result;
}
}
class Program
{
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var query = from x in arr where x % 2 == 0 select x;
foreach (int x in query) Console.Write(x + "\t");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCm5hbWVzcGFjZSBDb25zb2xlQXBwMQp7CiAgICBzdGF0aWMgY2xhc3MgTXlMaW5xCiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyBJRW51bWVyYWJsZTxpbnQ+IFdoZXJlKHRoaXMgaW50W10gYXJyLCBGdW5jPGludCwgYm9vbD4gY29uZCkKICAgICAgICB7CiAgICAgICAgICAgIGludFtdIHJlc3VsdCA9IG5ldyBpbnRbYXJyLkxlbmd0aF07CiAgICAgICAgICAgIGludCBqID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIuTGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBpZiAoY29uZChhcnJbaV0pKQogICAgICAgICAgICAgICAgICAgIHJlc3VsdFtqKytdID0gYXJyW2ldOwogICAgICAgICAgICBBcnJheS5SZXNpemUocmVmIHJlc3VsdCwgaik7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICBpbnRbXSBhcnIgPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwIH07CiAgICAgICAgICAgIHZhciBxdWVyeSA9IGZyb20geCBpbiBhcnIgd2hlcmUgeCAlIDIgPT0gMCBzZWxlY3QgeDsKICAgICAgICAgICAgZm9yZWFjaCAoaW50IHggaW4gcXVlcnkpIENvbnNvbGUuV3JpdGUoeCArICJcdCIpOwogICAgICAgIH0KICAgIH0KfQo=