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