我有以下 LINQ 查询,并且想知道它的等效普通 C# 代码。
int[] arrayMain = new int[6];
return (from i in Enumerable.Range(0, arrayMain.Length / 2)
from c in ReturnArrayOfLengthTwo()
select c).ToArray();
此查询的输出是一个长度为 6 的数组。但我想了解排序,因为 ReturnArrayOfLengthTwo 只是从 arrayMain 中选择两个随机位置,然后创建并返回一个长度为 2 的数组。
谢谢
最佳答案
在非常基本的 C# 中(没有 LINQ、泛型、扩展方法等),它看起来像:
int[] arrayMain = new int[6];
// Filling the arrayMain with two elements, so increment i by 2
// arrayMain[0], arrayMain[1] (first loop)
// arrayMain[2], arrayMain[3] (second loop)
// arrayMain[4], arrayMain[5] (third loop)
for (int i = 0; i < arrayMain.Length - 1; i += 2)
{
// Returns two elements to insert into the arrayMain array.
int[] returnedArray = ReturnArrayOfLengthTwo();
arrayMain[i] = returnedArray[0];
arrayMain[i + 1] = returnedArray[1];
}
简单地说,ReturnArrayOfLengthTwo
显然返回两个元素放入数组中。因此,您只需迭代循环 3 次(而不是 6 次)即可将所有必需的值放入 arrayMain
中。
关于等效 LINQ 查询的 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16869162/