public static class MyLinqExtensions { public static T? FirstOrNull<T>(this IEnumerable<T> s) where T : struct { foreach (var i in s) return i; return default(T?); // return s.Cast<T?>().FirstOrDefault(); }
public static void ForEach<T>(this IEnumerable<T> s, Action<T> a) { foreach (var i in s) a(i); } }
class Program { static void Main(string[] args) { var s = new [] {7, 0, 1, 2, 13, 3, 4, 5};
var x = s.Where(i => i >= 11).FirstOrNull(); if (x != null) Console.WriteLine(x);
s.Where(i => i >= 11).Take(1).ForEach(Console.WriteLine); } }