在C#4.0中,如果element + k
的位置是n
的倍數,是否有辦法將double []的每個元素提取到另一個數組中?也就是說,如果k
是3
和n
是4
,我想從陣列a1
與第3,第7,第11位......(所以在C#因爲數組在0
開始創建數組a2
,這將是a1[2]
,a1[6]
,a1[10]
...等)如何檢索每個X位置的數組元素?
我感興趣的是在C#中以最快的方式實現這一點,我知道如何使用for循環來實現這一點。
在C#4.0中,如果element + k
的位置是n
的倍數,是否有辦法將double []的每個元素提取到另一個數組中?也就是說,如果k
是3
和n
是4
,我想從陣列a1
與第3,第7,第11位......(所以在C#因爲數組在0
開始創建數組a2
,這將是a1[2]
,a1[6]
,a1[10]
...等)如何檢索每個X位置的數組元素?
我感興趣的是在C#中以最快的方式實現這一點,我知道如何使用for循環來實現這一點。
我不認爲有比使用for循環更快的方法。反正它可能會使用在IEnumerable
像WhereLinq
操作成爲可能:
double[] doubleArray = {10.0,3.0,5.0,6.0};
IEnumerable<double> = doubleList.Where((number,index) => number + index % n == 0);
我不知道我已經明白要滿足的條件。無論如何,用所需的方法替換匿名方法主體。
爲什麼你明確要做ToList()? – LightStriker
@LightStriker:謝謝......我不知道數組已經實現了IEnumerable。 – Heisenbug
我想他的意思是'(index - k)%n == 0' – pascalhein
這是我肯定會使用'for'循環的東西。我不確定這個練習的重點是什麼,但我確定沒有內置任何東西可以做到這一點。 –
爲什麼你會希望*有什麼比使用循環更快?這不是這是一個特別常見的操作... –
你可以使用Where LINQ方法。 – Ondra