создать массив с помощью цикла - PullRequest
2 голосов
/ 21 мая 2011

Мне нужно создать массив строк, достаточно просто ... единственная проблема в том, что строки представляют собой целые числа от 1 до 1000, и я действительно не хочу вводить каждую из них.

Можете ли вы создатьцикл, который мог бы создать это?

прямо сейчас это выглядит так

        private readonly string[] _myArray = { "1", "2", "3", "4", "5" };

и вызывается

        for (var i = 0; i < _myArray.Length; i++)
        {
            arFoo[i].SetBar(_myArray[i]);
        }

любые предложения о том, как добавить другие 995не вводя их вручную?

Ответы [ 11 ]

7 голосов
/ 21 мая 2011

Это просто и чисто:

readonly string[] _myArray 
    = Enumerable.Range(1, 1000)
        .Select(i => i.ToString())
        .ToArray();
5 голосов
/ 21 мая 2011

Если вы хотите использовать LINQ:

    private readonly string[] _myArray;

    public Foo()
    {
        _myArray = Enumerable.Range(1, 1000).Select(s => s.ToString()).ToArray();
    }

или более традиционно:

public class Foo
{
    private readonly string[] _myArray;

    public Foo()
    {
        _myArray = new string[1000];
        for(int i=1; i<=1000; i++)
        {
            _myArray[i - 1] = i.ToString();
        }
    }
}
2 голосов
/ 21 мая 2011
int[] arr = Enumerable.Range(1, 1000).ToArray();
2 голосов
/ 21 мая 2011
var array = Enumerable.Range(1, 1000).Select(item => item.ToString()).ToArray();
2 голосов
/ 21 мая 2011

Вам нужен массив? Вы могли бы просто сделать это:

for (var i = 0; i < 1000; i++)       
{            
   arFoo[i].SetBar(i.ToString()); 
}

Если вам нужен массив, помните, что массивы в C # (и в .Net) имеют фиксированный размер. Для добавления элементов вам понадобится другая структура данных, например List<String>, затем вы можете преобразовать в массив (если это действительно необходимо) с помощью ToArray().

2 голосов
/ 21 мая 2011

Как насчет

int NumberOfElements = 1000;
String[] Array = new String[NumberOfElements];

for(int i=0; i<Array.Length; i++)
{
   Array[i] = (i + 1).ToString();
}
2 голосов
/ 21 мая 2011
string[] arr = new string[1000];
for (int i = 1; i <= 1000; i++)
{
    arr[i-1] = i.ToString();
}
2 голосов
/ 21 мая 2011
_myArray = new string[1000];
for (int i = 1; i <= 1000; i++) _myArray[i - 1] = i.ToString();
1 голос
/ 21 мая 2011
private readonly string[] _myArray = new string[1000];

for (int i = 0; i < _myArray.Length; i++)
    _myArray[i] = i.ToString();
1 голос
/ 21 мая 2011

Вы можете просто сделать это в цикле for следующим образом, вызвав ToString для int 'i'

private string[] _myArray = new string[1000];

for(int i=0;i<1000;i++)
{
  _myArray[i] = i.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...