Дополнительно
Добавление значений в массив C#
Возможно, очень простой - я начинаю изучать C# и мне нужно, например, добавить значения в массив:
int[] terms;
for(int runs = 0; runs < 400; runs++)
{
terms[] = runs;
}
Для тех, кто использовал PHP, вот что я пытаюсь сделать на C#:
$arr = array();
for ($i = 0; $i < 10; $i++) {
$arr[] = $i;
}
468
18
Вы можете сделать таким образом -
Кроме того, вы можете использовать списки - преимущество со списками того, вы Дон'т нужно знать размер массива при создании списка.
Редактировать: а) по петли на список&ЛТ;Т> немного более чем в 2 раза дешевле, чем цикл foreach петли на список&ЛТ;Т>, б) зацикливание на массиве примерно в 2 раза дешевле, чем зацикливание на список&ЛТ;Т>, с) цикл по массиву, используя ПО в 5 раз дешевле, чем зацикливание на список&ЛТ;П> используя цикл foreach (который большинство из нас делает).
Если вы'вновь пишет на C# 3, Вы можете сделать это один-лайнер:
В этом фрагменте кода предполагается, что директива using для System.LINQ, которая в верхней части вашего файла.
С другой стороны, если вы'вновь ищу то, что может быть динамически изменен, так как он появляется в случае для PHP (я'ве никогда не узнал его), то вы можете использовать список<инт> вместо типа int[]. Здесь's что что код будет выглядеть так:
Заметим, однако, что вы не можете просто добавить элемент 401-й, устанавливая условия[400] на значение. Вы'd, а не нужен вызов add(), такой:
Используя в LINQ'ы способ метод concat делает этот простой
результат 3,4,2
Ответы о том, как сделать это с помощью массива предоставлены здесь.
Однако, в C# есть очень удобная вещь под названием Система.Коллекции :)
Коллекции являются необычные альтернативы с помощью массива, хотя многие из них использовать массив внутренне.
Например, в C# есть коллекция называется Список, что функции очень похож на PHP-массив.
На основании ответа из Thracx (я Дон'т иметь достаточно очков, чтобы ответить):
Это позволяет добавить больше, чем просто один элемент в массив, или просто передать массив в качестве параметра для объединения двух массивов.
Используя список<Т> В качестве посредника-это самый простой способ, как уже описывали, но поскольку ваш вклад-это массив, и вы не'т вы просто хотите сохранить данные в список, я предполагаю, что вы могли бы быть обеспокоены производительности.
Наиболее эффективным методом является, скорее всего, выделение нового массива, а затем, используя массив.Копия или массива.Метод CopyTo. Это не сложно, если вы просто хотите, чтобы добавить элемент в конец списка:
Я также могу разместить код для вставки метод расширения, который принимает индекс назначения в качестве входных данных, при желании. Это's немного более сложным и использует статический массив методом.Копировать 1-2 раза.
Сначала нужно выделить массив:
Вот как бы я это закодировал.
Массивы C# имеют фиксированную длину и всегда индексируется. Идти с Моти'решения:
Обратите внимание, что этот массив представляет собой плотный массив, смежные блоки 400 байт, где вы можете оставить вещи. Если вы хотите динамически изменять размер массива, использовать список&ЛТ;инт>.
Ни тип int [], ни список&л;int> есть ассоциативный массив-это словарь&ЛТ;> в C#. Как массивы и списки плотные.
Вы можете'Т просто добавить элемент в массив легко. Вы можете установить элемент в заданную позицию как fallen888 изложил, но я рекомендую использовать список и Л;int> У
или
сбор и Л;int> вместо этого, и использовать метод toArray ()`, если вам это нужно преобразовать в массив.Я добавлю это другой вариант. Я предпочитаю этот тип функциональной линии программирования.
Просто другой подход:
Если вам действительно нужен массив, в следующем вероятно самое простое:
Если вы Don'т знать размер массива или уже есть массив, который вы добавляете на. Вы можете пойти об этом двумя способами. Первый-с помощью универсального
список<Т>
: Для этого необходимо преобразовать массив в termsList ВАР = условия.Вызова метода toList (); и использовать метод Add. Затем, когда закончите использовать термины ВАР = termsList.Метод toArray();` метод, чтобы преобразовать обратно в массив.Второй способ-изменение размера текущего массива:
Если вы используете .Массив net 3.5 с
.Добавить(...);
Оба эти позволят вам сделать это динамически. Если вы будете добавлять много элементов, затем просто использовать
список<Т>
. Если это's просто пару пунктов, то он будет иметь лучшую производительность при изменении размера массива. Это потому, что вы берете больше хита для создания `список<Т> объект.Раз в ТИКах:
3 шт
400 пунктов