2015-08-08 2 views
-2
Console.WriteLine ("Enter the number of book to delete (1 to {0})", amount); 
int posToDelete = Convert.ToInt32 (Console.ReadLine())-1; 

for (int i = posToDelete; i < amount - 1; i++) 
b [i] = b [i + 1]; 
amount--; 

// hi! i am new to programming... could anyone please explain this to me in detail 

// *, что является использование -1 после Readline // * объясните мне плз петляC# как удалить элемент в массиве?

//link of the question 
//http://practiceexercisescsharp.blogspot.com.es/2013/05/411-books-database.html 
+1

Добро пожаловать в SO!Вам нужно показать нам, какие исследования вы провели, тесты, которые вы выполнили, а затем запросить разъяснения в отношении этих исследований. См. [Как спросить страницу] (http://stackoverflow.com/help/how-to-ask) для получения помощи в улучшении ваших вопросов. – Madness

+0

скорее всего вы хотите «Список вместо массива, список изначально поддерживает добавление удаляемых элементов, массивы не – BrokenGlass

ответ

1

Fisrt вопрос:

Массив начинается с 0. , например: Существует множество б содержит 4 элемента.

b[4] = {1,2,3,4}; 

так b[0] является 1 и b[3] является 4. нет b[4].

Если вы хотите удалить второй элемент (какой элемент 2), вы должны удалить b[1].
поэтому позиция 1.
Вот почему мы используем -1 после readline.

второй вопрос:

for (int i = posToDelete; i < amount - 1; i++) 
{ 
    b [i] = b [i + 1]; 
    amount--; 
} 

int = posToDelete позиция элемента, который мы хотим удалить.
мы используем следующий элемент для его замены.
это b[i] = b[i+1];
потому что мы удаляем один пункт, сумма нужна -1;
также используем b[4] например:
если удалять 2.
начальная: [1,2,3,4]amount=4;
начало петли: [1,2,3,4] posDelete является 1, amount является 3;
b[1]=b[2]; мы используем 3 для замены 2;
b[2]=b[3]; мы используем 4 для замены 3;
i увеличивается до i является 3; конец контура.
новый массив [1,3,4].

0

Скорее всего indexer вашей книги массива раскладка, как следующее:

book[0] = "Book1" //Where user inputs 1 and then subtract 1 from it to access index 0 

Рассмотрим следующие примеры:

book[0] = "Book1" //Book input is 1 less 1 = index of 0 
book[1] = "Book2" //Book input is 2 less 1 = index of 1 
book[2] = "Book3" //Book input is 3 less 1 = index of 2 

Конечно, логика удаления книги под вопросом, так как мы не уверены, как книга действительно устроена в Arrays или Collections. Но в вашем случае вы указываете позицию , поэтому можно сказать, что позиция 1 is , равный индексу 0.

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