Существует ли эквивалент range(имя массива) в c#, как в python?

#python #c# #loops

Вопрос:

Я недавно начал работать в C# и получил опыт программирования на python. В python есть способ перебрать массив и установить переменную i в число в диапазоне for i in range(numbers) , это приведет к перебору параметра массива i в индекс в массиве/списке. Есть ли эквивалент в c# или вам нужно использовать счетчик для увеличения каждый раз?

Комментарии:

1. для(int i = 0; i

2. FWIW ваше понимание кода Python немного не так. for i in range(x) будет работать только в том случае, если x это целое число, а не массив/список/что-либо еще. О чем ты думаешь enumerate ?

3. @DeepSpace Да, я просто быстро написал это и не смог подобрать слово, если вы понимаете, что я имею в виду, но это за то, что указал на это

Ответ №1:

Вы можете просто использовать for цикл:

 for (var i = 0; i < myArray.Length; i  )
{
    myArray[i] = 0;
}
 

Если вы хотите, чтобы это было по-питоновски, то эквивалентом Python range(...) в C# является Enumerable.Range(...)

Затем вы можете использовать перечисляемое в foreach цикле.

 var range = Enumerable.Range(0, myArray.Length);
foreach (var i in range)
{
    myArray[i] = 0;
}
 

Ответ №2:

Вы можете использовать foreach инструкцию:

 foreach (int i in numbers)
{
    // Do something with i
}
 

Ответ №3:

Вы могли бы использовать foreach для массива и списков, но для чисел используйте это:

 for (int = /* start */; i < /* end, exclusive */; i  )
{
    // do something
}