簡體   English   中英

以更簡單的方式獲得結果

[英]Obtain the result in easier way

我需要獲得一個包含原始數組的反向備用元素的數組。

例如:包含元素{12,56,67}的數組。

我需要獲取一個包含{67,12}的數組(反轉數組以獲取{67,56,12},然后采用備用元素表示{67,12})

我需要在C#中執行此操作

這不會是您得到的最短答案,但是對我來說似乎很優化。

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];
}

如果您使用的是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整除,因此我們要說的是反轉列表並從中選擇奇數元素。

不是最有效的解決方案,而是簡潔明了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM