Есть ли поддержка C# основанного на индексе вида?

Вам нужно каждый раз пересчитывать значение кубика в вашем цикле, например:

import sys
import random
import time


greeting = "Welcome to my Dice Game!"
roll = "Lets roll this die!"


print(greeting)
time.sleep(2)

answer = input("Want to play?")

while answer == "yes" or answer == "y":
    print(roll)
    time.sleep(2)
    die = random.randint(0, 6) # recompute it here instead
    print(die)
    answer = input("Want to play again?")
print("Thanks for playing!")
7
задан Mark T 18 March 2009 в 19:58
поделиться

2 ответа

После того как Вы настроили индексный массив, можно отсортировать его с помощью пользовательского Comparison<T> это сравнивает значения в соответствующих объектах в массиве данных:

Array.Sort<int>(index, (a,b) => anylist[a].CompareTo(anylist[b]));
13
ответ дан 6 December 2019 в 19:42
поделиться

Следующий код achievs индексируемый вид. Обратите внимание, что ToArray () звонят для клонирования массива данных. Если опущено, массив данных становится отсортированным, также.

static void Main(String[] args)
{
   Int32[] data = new Int32[] { -6, 6, 5, 4, 1, 2, 3, 0, -1, -2, -3, -4, -5 };

   Int32[] indices = Enumerable.Range(0, data.Length).ToArray();

   Array.Sort(data.ToArray(), indices);

   foreach (Int32 index in indices)
   {
       Console.Write(String.Format("{0} ", data[index]));
   }

   Console.ReadLine();
}

Вывод как exspected.

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6
0
ответ дан 6 December 2019 в 19:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: