我在C#中使用单个&符号(&)来表示“即使第一个是false也检查第二个条件语句”.
但以下似乎是&总而言之,任何人都可以解释我& 1在以下示例中工作?
List<int> scores = new List<int> { 1,2,3,4,5,6,7,8 }; var evenscores = scores.Where(i => i % 2 == 0); var evenscores2 = scores.Where(i => (i & 1) == 0);
解决方法
一个&是“按位AND运算符”,就像
dove所说.我正在看第二部分的问题:“为什么它的作品?
思考二进制:
000 = 0 001 = 1 010 = 2 011 = 3 100 = 4 101 = 5 110 = 6 111 = 7 and so on
注意所有偶数以0结尾;所以如果最后一位按位检查1返回零(意思是“不匹配”),它的偶数;