добавить значения в массив строк во время выполнения c# - PullRequest
0 голосов
/ 30 апреля 2020

я получаю строковый массив во время выполнения, как это

    string[] array1 = {"5", "4", "2"};

значения в массиве добавляются во время выполнения на основе выбора флажка на экране

(Примечание: у меня 7 флажков на экране)

если я установлю 3 флажка, то в массив 1 будут добавлены 3 значения, но я хочу добавить

ноль в конце массива в оставшихся 4 позициях в массиве, например так:

 string[] array1 = {"5", "4", "2","0" ,"0","0" , "0"};

во время выполнения, чтобы исправить все 7 позиций в массиве ... что мне делать ??

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Я не получаю использование вашего требования. Но вы можете заполнить массив "0" следующим кодом:

List<string> list = array1.ToList();
for (int i = array1.Length; i < 7; i++)
{
    list.Add("0");
}
array1 = list.ToArray();
0 голосов
/ 30 апреля 2020

Вы можете сделать следующее:

const int paddedSize = 7;
var newArray = array1.Concat(Enumerable.Repeat("0", paddedSize - array1.Length)).ToArray();

Но, возможно, вы поймете это лучше, не используя Linq; тип, который вы хотите использовать, - List<string>, размер которого можно динамически изменять, а массивы - нет. Чтобы получить список из массива, вы можете использовать расширение linq:

var resized = array1.ToList();

или

var resized = new List<string>(array1);

И теперь вы просто добавляете 0s до общего количества items 7:

while (resized.Count < paddedSize)
    resized.Add("0");

И обратно в массив:

var newArray = resized.ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...