gpt4 book ai didi

c# - 如何使用LINQ将奇数和偶数进行分组?

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:26 24 4
gpt4 key购买 nike

我想使用LINQ将我的奇数和偶数分组在两个单独的数组中。

 int[] randNum = randomNums(20, 1000, 1000);
var oddEvnNums = from num in randNum
group ???
select new { odd = oddNums[], even = evnNums[]}


int oddNum = oddEvnNums.odd[0];
int evenNum = oddEvnNums.even[0];

最佳答案

只需使用键num & 1创建一个查找(对于正数等效于num % 2,但对于负数则坚持1而不是-1):

var lookup = randNum.ToLookup(num => num & 1);
var even = grouped[0].ToArray();
var odd = grouped[1].ToArray();


请注意,如果您要求一个没有任何条目的键,查找将返回一个空序列,因此您不必担心是否存在奇数和偶数。

另外,除了分组以外,您可能还可以遍历整个序列两次:

var even = randNum.Where(num => (num & 1) == 0).ToArray();
var odd = randNum.Where(num => (num & 1) == 1).ToArray();


仅当两次序列相同时才有效(例如,不是每次迭代都随机生成),但它可能比分组方法更有效。

关于c# - 如何使用LINQ将奇数和偶数进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24402368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com