如何使用可枚举方法
How to use Enumerable Methods
我四处寻找对这些可枚举方法的一些很好的解释,但似乎找不到合适的解释。
我一直在使用其中的一些,例如 select、skip、orderby 和 sort,但我不知道它们的实际工作原理
例如
string[] RandomNames = names.OrderBy(x => rnd.Next()).ToArray();
或
string[] SelectedNames = names.Select(i => i.ToString()).ToArray()
所以有几点我不清楚:
- 那么 => 实际上做了什么
- group by 的工作原理及其用途。
我将不胜感激,但我正在寻找深入的解释。
=>
是 lambda 表达式。
什么是 lambda 表达式,为什么如此有用?让我们考虑示例:
你有随机列表 integers
,你只想选择除以 2。在正常情况下,它看起来像这样:
public bool IsDevidedByTwo(int number)
{
if(number % 2 == 0)
return true;
return false ;
}
List<int> DevidedByTwoList = new List<int>;
foreach(var number in RandomIntsList)
{
if(IsdevidedByTwo(number)) DevidedByTwoList.Add(number);
}
它很容易理解,但需要很多 space 所以你不能立即理解它,尤其是当函数 IsDevidedByTwo()
将在不同的文件中时。
当你使用 lamba 表达式和 LINQ 时它会是什么样子:
List<int> DevidedByTwoList = RandomIntsList.Where(number => number % 2 == 0).ToList();
一行而不是 12 行。
number => number % 2==0
是 lambda 表达式。它检查数字是否被 2 除。它的工作原理与 IsDevidedByTwo
函数非常相似,但您不需要为它命名。
.Where()
是 LINQ 方法 可以过滤例如列表并仅选择满足括号中条件的元素。
如果您想了解更多信息,请阅读有关 LINQ and lambda expresions 的内容。
lambda 表达式是一个匿名函数,主要用于在 LINQ 中创建委托。简单地说,它是一个没有声明的方法,即访问修饰符、return 值声明和名称。
它减少了打字。无需指定函数名称、return 类型及其访问权限 modifier.When 阅读代码,您无需在其他地方查找方法的定义。
这是一篇很好的文章,有例子和解释。
我四处寻找对这些可枚举方法的一些很好的解释,但似乎找不到合适的解释。
我一直在使用其中的一些,例如 select、skip、orderby 和 sort,但我不知道它们的实际工作原理
例如
string[] RandomNames = names.OrderBy(x => rnd.Next()).ToArray();
或
string[] SelectedNames = names.Select(i => i.ToString()).ToArray()
所以有几点我不清楚:
- 那么 => 实际上做了什么
- group by 的工作原理及其用途。
我将不胜感激,但我正在寻找深入的解释。
=>
是 lambda 表达式。
什么是 lambda 表达式,为什么如此有用?让我们考虑示例:
你有随机列表 integers
,你只想选择除以 2。在正常情况下,它看起来像这样:
public bool IsDevidedByTwo(int number)
{
if(number % 2 == 0)
return true;
return false ;
}
List<int> DevidedByTwoList = new List<int>;
foreach(var number in RandomIntsList)
{
if(IsdevidedByTwo(number)) DevidedByTwoList.Add(number);
}
它很容易理解,但需要很多 space 所以你不能立即理解它,尤其是当函数 IsDevidedByTwo()
将在不同的文件中时。
当你使用 lamba 表达式和 LINQ 时它会是什么样子:
List<int> DevidedByTwoList = RandomIntsList.Where(number => number % 2 == 0).ToList();
一行而不是 12 行。
number => number % 2==0
是 lambda 表达式。它检查数字是否被 2 除。它的工作原理与 IsDevidedByTwo
函数非常相似,但您不需要为它命名。
.Where()
是 LINQ 方法 可以过滤例如列表并仅选择满足括号中条件的元素。
如果您想了解更多信息,请阅读有关 LINQ and lambda expresions 的内容。
lambda 表达式是一个匿名函数,主要用于在 LINQ 中创建委托。简单地说,它是一个没有声明的方法,即访问修饰符、return 值声明和名称。
它减少了打字。无需指定函数名称、return 类型及其访问权限 modifier.When 阅读代码,您无需在其他地方查找方法的定义。
这是一篇很好的文章,有例子和解释。