我目前正在学习Visual Studio 2012的C#上的PLINQ(并行语言集成查询)。
在给我的一节课中Where(i => i % 2 == 0)
,但我不知道这意味着什么,我正在研究的书没有给出任何解释。
有谁知道这意味着什么?
答案 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没有余数。
%
运算符在除以第一个之后计算余数 第二个操作数。所有数字类型都有预定义的余数 运算符。
答案 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
中的每个项目source
,Where
将应用表达式i % 2 == 0
。
Where
选择lambda表达式为true的source
中的项目。在这种情况下,当i
为偶数时,表达式为真。
这是因为模运算符%
,它返回两个数字a
和b
之间的整数除法的余数:a % b
。如果a = 4
和b = 3
,则a % b
的值为1,因为将4除以3时仍然存在。如果%
返回0
,则表示a
除以b
。如果b
为2
,则表示a
为偶数。