Program.cs
using FancLinq;
public class Program
{
public static void Main(string[] args)
{
var nums = new int[] {1,2,3,4,5,6,7};
var str = nums.Select((value) => SelectMethod(value))
.ToList();
str.ForEach(System.Console.WriteLine);
var str2 = nums.Select((value1, value2) => SelectMethod(value1, value2))
.ToList();
str2.ForEach(System.Console.WriteLine);
// MY Select ------------------
var str3 = nums.MySelect(SelectMethod)
.ToList();
str3.ForEach(System.Console.WriteLine);
}
public static string SelectMethod(int arg1)
{
return string.Format($"sonlar : {arg1}");
}
public static string SelectMethod(int arg1, int arg2)
{
return string.Format($"son : {arg1} index : {arg2}");
}
}
LinqExtensions.cs
namespace FancLinq;
public static class LinqExtensions
{
public static IEnumerable<TResult> MySelect<T1,TResult>(this IEnumerable<T1> collection, Func<T1,TResult> callback)
{
// var result = new List<TResult>();
foreach(var num in collection)
{
// result.Add(callback.Invoke(num));
yield return callback.Invoke(num);
}
// return result;
}
}
Result
sonlar : 1
sonlar : 2
sonlar : 3
sonlar : 4
sonlar : 5
sonlar : 6
sonlar : 7
son : 1 index : 0
son : 2 index : 1
son : 3 index : 2
son : 4 index : 3
son : 5 index : 4
son : 6 index : 5
son : 7 index : 6
sonlar : 1
sonlar : 2
sonlar : 3
sonlar : 4
sonlar : 5
sonlar : 6
sonlar : 7
Top comments (0)