欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

理解并掌握 LINQ 的推导与原理

最编程 2024-08-10 16:09:15
...
using System;
using System.Collections.Generic;
using System.Linq;

static void Main(string[] args)
{
int[] nums = new int[] { 12, 23, 3, 4, 2, 234, 123 };

// 自定义实现
IEnumerable<int> result = MyWhere(nums, a => a > 10);
foreach (var item in result)
{
Console.WriteLine(item);
}

IEnumerable<int> result2 = MyWhere2(nums, a => a > 10);
foreach (var item in result)
{
Console.WriteLine(item);
}

// Linq
var data = nums.Where(x => x > 10);
foreach (var item in data)
{
Console.WriteLine(item);
}
}

// 实现方式1
static IEnumerable<int> MyWhere(IEnumerable<int> items, Func<int, bool> func)
{
List<int> list = new List<int>();
foreach (int item in items)
{
if (func(item))
{
list.Add(item);
}
}
return list;
}

// 实现方式2 效率相较于1更高
static IEnumerable<int> MyWhere2(IEnumerable<int> items, Func<int, bool> func)
{
foreach (int item in items)
{
if (func(item))
{
yield return item;
}
}
}

推荐阅读