2017-02-02 3 views
1

Я хочу добавить число в каждую строку в списке.Добавить числа в существующую строку списка C#

Прямо сейчас я подсчитываю, сколько файлов у меня есть в папке, добавьте это число в строковый массив. Затем с помощью цикла i добавьте число в этот массив и добавьте элементы в список .

Но число добавляется только к первой строке. enter image description here

Код:

int countFile = Directory.GetFiles(saveAnimePath + "\\Watching", "*.txt").Length; 

       string[] filesCount = new string[countFile]; 

       int number = 0; 
       for (int i = 0; i < filesCount.Length; i++) 
       { 
        number = number + 1; 
        filesCount[i] = number.ToString(); 
       } 

       foreach (var item in filesCount) 
       { 
        lvWatching.Items[0].Text = item; 
       } 

Как добавить номер в каждой строке?

+0

как вы связать свой ListView? –

+1

это в приложении winform? где находится код представления списка? – jjj

+0

@JitendraAanadi да это winform. Ssry, чтобы не упоминать об этом. – Bongskie

ответ

1

Вам нужно изменить строку элемента для каждого взаимодействия в: lvWatching.Items[0].Text = item;

Например:

int countFile = Directory.GetFiles(saveAnimePath + "\\Watching", "*.txt").Length; 

    int number = 0; 
    for (int i = 0; i < filesCount.Length; i++) 
    { 
     number = number + 1; 
     lvWatching.Items[i].Text = number.ToString(); 
    } 
+0

ой, я такой немой :) спасибо! – Bongskie

1

Проблема в том, что в последнем предложении foreach вы редактируете только первый элемент в ListView.

Вместо Еогеасп, попробуйте использовать для, что-то вроде этого:

for (var i = 0; i++; i < filesCount) 
{ 
    lvWatching.Items[i].Text = filesCount[i]; 
} 

Редактировать

Но я думаю, что ваш метод много накладных расходов. Предполагая, что в списке отображаются все файлы из каталога, нет необходимости получать их снова, получать их счет, назначать числа и так далее. Вы можете просто перебирать элементы списка и назначать правильный номер.

Весь «Присвоение номера операции» будет выглядеть примерно так:

for (var i = 0; i++; i < lvWatching.Items.Length) 
{ 
    lvWatching.Items[i].Text = i.ToString(); 
} 

Но я мог бы что-то отсутствует, поэтому он не может работать в любой ситуации.

+0

Я просто тупой: /, спасибо за решения !!! – Bongskie

Смежные вопросы