Возможно, это действительно очень просто - я начинаю с C # и мне нужно добавить значения в массив, например:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
Для тех, кто использовал PHP, вот что я пытаюсь сделать в C #:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
Ответы:
Вы можете сделать это так -
В качестве альтернативы вы можете использовать списки - преимущество списков в том, что вам не нужно знать размер массива при создании экземпляра списка.
Отредактируйте: a) циклы for в List <T> чуть более чем в 2 раза дешевле циклов foreach в List <T>, b) циклы в массиве примерно в 2 раза дешевле, чем циклы в List <T>, c) циклы в Использование массива for в 5 раз дешевле, чем использование цикла List <T> с использованием foreach (что большинство из нас делает).
источник
new int[]{}
!!!!!OutOfRangeException
как только вы запустите код. Массивы должны быть инициализированы с размером, который вы собираетесь использовать, они резервируют все пространство в начале, что делает их очень быстрыми, но их размер не может быть изменен.Если вы пишете на C # 3, вы можете сделать это с помощью одной строки:
Этот фрагмент кода предполагает, что у вас есть директива using для System.Linq в верхней части вашего файла.
С другой стороны, если вы ищете что-то, что может быть динамически изменено, как это происходит в PHP (я никогда не изучал это), то вы можете использовать List вместо int [] , Вот как будет выглядеть этот код:
Однако обратите внимание, что вы не можете просто добавить 401-й элемент, установив термины [400] в значение. Вместо этого вам нужно вызвать Add (), вот так:
источник
Использование метода Linq Concat делает это простым
результат 3,4,2
источник
Ответы о том, как это сделать с помощью массива, приведены здесь.
Однако в C # есть очень удобная вещь, называемая System.Collections :)
Коллекции - это причудливые альтернативы использованию массива, хотя многие из них используют массив внутри.
Например, в C # есть коллекция List, которая функционирует очень похоже на массив PHP.
источник
Использование списка в качестве посредника - это самый простой способ, как уже описывали другие, но поскольку ваши входные данные являются массивом, а вы не хотите просто хранить данные в списке, я предполагаю, что вы можете быть обеспокоены производительностью.
Наиболее эффективный метод, вероятно, заключается в выделении нового массива и последующем использовании Array.Copy или Array.CopyTo. Это несложно, если вы просто хотите добавить элемент в конец списка:
Я также могу опубликовать код для метода расширения Вставка, который принимает целевой индекс в качестве ввода, если это необходимо. Это немного сложнее и использует статический метод Array.Copy 1-2 раза.
источник
Основываясь на ответе Тракса (мне не хватает очков, чтобы ответить):
Это позволяет добавить более одного элемента в массив или просто передать массив в качестве параметра для объединения двух массивов.
источник
Вы должны сначала выделить массив:
источник
Это было бы, как я бы закодировал это.
источник
Массивы C # имеют фиксированную длину и всегда индексируются. Перейти с решением Мотти:
Обратите внимание, что этот массив является плотным массивом, непрерывным блоком из 400 байтов, куда вы можете отбрасывать объекты. Если вам нужен массив динамического размера, используйте List <int>.
Ни int [], ни List <int> не являются ассоциативным массивом - это был бы Dictionary <> в C #. И массивы, и списки плотные.
источник
источник
Вы не можете просто добавить элемент в массив. Вы можете установить элемент в заданной позиции, как указано fallen888 , но я рекомендую использовать вместо него a
List<int>
или aCollection<int>
и использовать,ToArray()
если вам нужно, его преобразовать в массив.источник
Если вам действительно нужен массив, возможно, самое простое:
источник
Я добавлю это для другого варианта. Я предпочитаю этот тип функциональных линий кодирования больше.
источник
Если вы не знаете размер массива или у вас уже есть существующий массив, к которому вы добавляете. Вы можете сделать это двумя способами. Первый - это использование универсального
List<T>
: для этого вам нужно преобразовать массив в avar termsList = terms.ToList();
и использовать метод Add. Затем, когда закончите, используйтеvar terms = termsList.ToArray();
метод для преобразования обратно в массив.Второй способ - изменение размера текущего массива:
Если вы используете .NET 3.5
Array.Add(...);
Оба из них позволят вам сделать это динамически. Если вы будете добавлять много предметов, просто используйте
List<T>
. Если это всего лишь пара элементов, то у него будет лучшая производительность при изменении размера массива. Это потому, что вы берете больше удара для созданияList<T>
объекта.Время в тиках:
3 предмета
400 предметов
источник
Просто другой подход:
источник
=
вместо оператора сравнения? Вы можете оставить переменную сражения и использовать ееruns < 400
для управления циклом.один из подходов - заполнить массив через LINQ
если вы хотите заполнить массив одним элементом, вы можете просто написать
Более того, если вы хотите заполнить массив несколькими элементами, вы можете использовать предыдущий код в цикле
источник
источник
источник
источник
Чтобы добавить значения списка в строковый массив с помощью C # без использования метода ToArray ()
Вывод массива значений содержит:
один
два
три
четыре
пять
источник