其中(i => i%2 == 0)

时间:2014-03-07 09:36:03

标签: c#

我目前正在学习Visual Studio 2012的C#上的PLINQ(并行语言集成查询)。

在给我的一节课中Where(i => i % 2 == 0),但我不知道这意味着什么,我正在研究的书没有给出任何解释。

有谁知道这意味着什么?

5 个答案:

答案 0 :(得分:2)

首先希望你知道% “%运算符在将第一个操作数除以第二个操作数后计算余数”。详细了解% Operator

如果你有一个数字列表

var list = new List<Int32>() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

var result = list.Where(i => i%2 == 0);

结果将有2,4,6,8和10。

同样的事情可以写成

  var ans = new List<Int32>();

    foreach (var an in list)
    {
        if (an%2 == 0)
            ans.Add(an);
    }

答案 1 :(得分:1)

查询仅选择偶数,其中除以2没有余数。

  

%运算符在除以第一个之后计算余数   第二个操作数。所有数字类型都有预定义的余数   运算符。

http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx

答案 2 :(得分:0)

Where(i => i % 2 == 0) 这意味着i会转到if i % 2 == 0 你正在为一个整数列表做它,它将从列表

返回所有偶数

答案 3 :(得分:0)

lambda表达式在1st时有点奇怪,但是当你在VS(及其intellisense)中进行一些实验时,你会很快习惯它。只要输入“i =&gt;”声明一个实现IEnumerable(<T>)接口的对象类型的范围变量。在这种情况下,我是你的列表中的一个元素(或其他IEnumerable&gt;&gt;列表,字典....)来调查这种情况,你搜索偶数...

答案 4 :(得分:0)

让我们说是这样的:

List<int> source = new List<int>() { 1, 2, 3, 4 };
var evenNumbers = source.Where(i => i % 2 == 0);

Where正在过滤source并仅返回偶数。

Where是一个Linq扩展方法,适用于实现IEnumerable接口的任何对象(如List)。

i => i % 2 == 0是一个lambda表达式。在这种情况下,这意味着对于i中的每个项目sourceWhere将应用表达式i % 2 == 0

Where选择lambda表达式为true的source中的项目。在这种情况下,当i为偶数时,表达式为真。

这是因为模运算符%,它返回两个数字ab之间的整数除法的余数:a % b。如果a = 4b = 3,则a % b的值为1,因为将4除以3时仍然存在。如果%返回0,则表示a除以b。如果b2,则表示a为偶数。