我需要得到一个包含原始数组的反向替换元素的数组。
例如:包含元素{12,56,67}的数组。
我需要一个包含{67,12}的数组 (反转数组获得{67,56,12}然后采用替代元素意味着{67,12})
我需要在c#
中执行此操作答案 0 :(得分:4)
这不是你得到的最短的答案,但它似乎对我来说相当优化。
int[] rgIn = new int[]{0,1,2,3,4,5};
int[] rgOut = new int[rgIn.Length / 2];
int ixOut = 0;
for (int ixIn = rgIn.Length - 2; ixIn >= 0; ixIn -= 2)
{
rgOut[ixOut++] = rgIn[ixIn];
}
答案 1 :(得分:2)
如果您使用的是C#3,请尝试以下操作:
int[] array = {1,2,3,4,5,6};
var x = array.Reverse().Where( (n,i) => i % 2 !=0);
扩展方法(C#3.0中的新增内容)在哪里,它构成了一个名为LINQ的语言功能的一部分。它根据谓词过滤序列。在上面的示例中,n是序列的元素,i是序列中元素的从零开始的索引。两者都是强类型的。谓词i%2!= 0表示元素的索引不能直接被2整除,所以我们所说的是反转列表并从中选择奇数元素。
不是最有效的解决方案,但简洁明了。