等效LINQ查询的c#代码
本文关键字:代码 查询 LINQ 等效 | 更新日期: 2023-09-27 18:16:26
我已经得到了以下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的数组。但是我想知道关于排序,因为returnarayoflengthtwo只是从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
中。
应该是这样的:
var list = new List<int>();
for (int i = 0; i <= arrayMain.Length / 2; i++)
foreach (int j in ReturnArrayOfLengthTwo())
list.Add(j);
return list.ToArray();
我希望我理解的是正确的