2016-03-28 25 views
4

Yuvarlak bir robin dizisi oluşturmaya çalışıyorum. Bu diziyi bir döngü içinde bir grup değerle besleyeceksem ve dizinin sonuna geldiğimde (hadi 10 tane olduğunu söyleyelim), ilk dizine nasıl döneceğim?Yuvarlak robin dizisi C#

+2

Bir dairesel-kuyruk demek? – Dai

+5

* Modüler * cebir size yardımcı olmalıdır: 'myArray [index% myArray.Length];' –

+1

Dairesel tampon için Google yardımcı olmalıdır. – Warty

cevap

9

döngü zaman dizinin indeksi hesaplamak için modüler cebir kullanın:

myArray[index % myArray.Length] 

Numune

int[] myArray = new int[10]; 

    // Round robin feeding; trying to put 0, 1, .. 13 into int[10]: 
    for (int i = 0; i < 14; ++i) // note 14 > 10 
    myArray[i % myArray.Length] = i; // i % myArray.Length - modular arithmetics 

    // Test 
    // 10, 11, 12, 13, 4, 5, 6, 7, 8, 9 
    // note that first 4 values (10, 11, 12, 13) are overriden 
    Console.Write(String.Join(", ", myArray)); 
+0

Mükemmel. Basit ve zarif. Teşekkür ederim. – beardedeagle