Последний добавленный элемент списка перезаписывает другие - PullRequest
1 голос
/ 25 апреля 2011
    private List<Movie> movies = new List<Movie>();
    Movie _movie;

    _movie = new Movie();
    movie.Title = "test2";
    _movie.Year = "1992";
    movies.Add(_movie);

   _movie = new Movie();
   _movie.Title = "test2";
   _movie.Year = "1992";
   movies.Add(_movie);

   _movie = new Movie();
   _movie.Title = "test3";
   _movie.Year = "1992";
   movies.Add(_movie);

   label8.Text = movies[0].toString();
   label9.Text = movies[1].toString();
   label10.Text = movies[2].toString();

Хорошо, я делаю небольшую программу, чтобы помочь мне и моим друзьям / девушкам выбрать фильм, когда нам скучно.Очевидная функциональность включает в себя добавление нового фильма в список.Я добавил туда ярлыки для тестирования, потому что каждый раз, когда я добавляю фильмы в Список, последний перезаписывает все остальные.

Я посмотрел на несколько вопросов / тем, которые я смог найти по этой проблеме, и я не вижу, как все объекты так или иначе ссылаются на один и тот же объект.Мог бы сделать с небольшой помощью.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2011

Попробуйте изменить:

   label8.Text = movies[0].toString();
   label9.Text = movies[1].toString();
   label10.Text = movies[2].toString();

На:

   label8.Text = movies[0].Title;
   label9.Text = movies[1].Title;
   label10.Text = movies[2].Title;

Причина в том, что вы храните и получаете доступ к Movie классу ToString(), который точно не знает, как выхотите распечатать его, если вы не переопределите строковый метод.

Вы явно не сказали, поэтому я не собираюсь предполагать, что вы переопределили метод ToString ().Если вы это сделали, то вам нужно опубликовать этот код и любой другой соответствующий код из вашего Movie класса.

0 голосов
/ 25 апреля 2011

С этим кодом все в порядке, если вы только приближаетесь к тому, что делает ваш код (игнорируя синтаксические ошибки). Проблема, скорее всего, в вашей пользовательской реализации Movie ToString().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...