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 bool myfunc(int x)
{
return x < 5;
}
static void Main(string[] args)
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var query = arr.Where(myfunc);
foreach (int x in query) Console.Write(x + "\t");
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCm5hbWVzcGFjZSBDb25zb2xlQXBwMQp7CiAgICBzdGF0aWMgY2xhc3MgTXlMaW5xCiAgICB7CiAgICAgICAgcHVibGljIHN0YXRpYyBJRW51bWVyYWJsZTxpbnQ+IFdoZXJlKHRoaXMgaW50W10gYXJyLCBGdW5jPGludCwgYm9vbD4gY29uZCkKICAgICAgICB7CiAgICAgICAgICAgIGludFtdIHJlc3VsdCA9IG5ldyBpbnRbYXJyLkxlbmd0aF07CiAgICAgICAgICAgIGludCBqID0gMDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIuTGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBpZiAoY29uZChhcnJbaV0pKQogICAgICAgICAgICAgICAgICAgIHJlc3VsdFtqKytdID0gYXJyW2ldOwogICAgICAgICAgICBBcnJheS5SZXNpemUocmVmIHJlc3VsdCwgaik7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBzdGF0aWMgYm9vbCBteWZ1bmMoaW50IHgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4geCA8IDU7CiAgICAgICAgfQogICAgICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykKICAgICAgICB7CiAgICAgICAgICAgIGludFtdIGFyciA9IHsgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAgfTsKICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gYXJyLldoZXJlKG15ZnVuYyk7CiAgICAgICAgICAgIGZvcmVhY2ggKGludCB4IGluIHF1ZXJ5KSBDb25zb2xlLldyaXRlKHggKyAiXHQiKTsKICAgICAgICB9CiAgICB9Cn0K