すべての映画をリストするシステムでこのオプションを開発したいと思います。リストgenreListが作成され、別のクラスでプライベート宣言され、私は私のメインプログラムで呼び出しています。C#:別のクラスの別のリストから特定の要素を追加して印刷するにはどうすればいいですか?
作品クラスの一部:
public List<string> genreList = new List<string>();
public Movie() { }
public Movie(string tt, int dur, string cls, DateTime opendt, List<string> genrelist)
{
Title = tt;
Duration = dur;
Classification = cls;
OpeningDate = opendt;
}
//methods
public List<string> GetGenreList()
{
return genreList;
}
そして、これは私のメインプログラムのコードです:
List<Movie> MovieList = new List<Movie>();
InitMovieList(MovieList);
if (option == 1)
listAllMovies(MovieList);
static void getGenreList()
{
Movie moviegenre = new Movie();
List<string> genreList = moviegenre.GetGenreList();
genreList.Add("Action");
genreList.Add("Adventure");
genreList.Add("Comedy");
genreList.Add("Fantasy");
genreList.Add("Thriller");
}
static void InitMovieList(List<Movie> MovieList)
{
Movie moviegenre = new Movie();
List<string> genreList = moviegenre.GetGenreList();
Movie m;
m = new Movie("The Great Wall", 103, "NC16", Convert.ToDateTime("29-12-2016"), genreList);
MovieList.Add(m);
m = new Movie("Rogue One: A Star Wars Story", 134, "PG13", Convert.ToDateTime("15-12-2016"), genreList);
MovieList.Add(m);
m = new Movie("Office Christmas Party", 106, "M18", Convert.ToDateTime("15-01-2017"), genreList);
m = new Movie("Power Rangers", 120, "G", Convert.ToDateTime("31-01-2017"), genreList);
}
//list all movies
static void listAllMovies(List<Movie> MovieList)
{
Movie moviegenre = new Movie();
List<string> genreList = moviegenre.GetGenreList();
Console.WriteLine();
Console.WriteLine(string.Format("{0,-5}{1,-30}{2,-10}{3,-20}{4,-15}{5,-15}", "No","Title","Duration", "Genre", "Classification", "Opening Date"));
for(int i = 0; i<MovieList.Count; i++)
{
Console.WriteLine(string.Format("{0,-5}{1,-30}{2,-10}{3,-20}{4,-15}{5,-15}", i + 1, MovieList[i].Title, MovieList[i].Duration, genreList[i], MovieList[i].Classification, MovieList[i].OpeningDate));
Console.WriteLine();
Console.Write("");
Console.ReadLine();
}
}
私の問題は、私は、「アクション、アドベンチャー」などの特定の要素を含むしようと思っていることですまたは "ファンタジー、スリラー"をMovielistの一員に捧げる。出力はこのようなものでなければなりません:
しかし、私が持っていることは、このエラーメッセージのバンドルされています:型「System.ArgumentOutOfRangeExceptionが」が 未処理の例外がmscorlib.dllが で発生しました追加情報:インデックスが範囲外です。負でなく、コレクションのサイズより小さくなければなりません。
これにより、プログラムが必要な部分に続くのを防ぐことができました。
どうするかで私を教えてください!どうもありがとうございました。
どのエラーメッセージが表示されるのかを教えてください。 –
あなたの 'listAllMovies'メソッドでインデックスが使い尽くされることがあります:)) –
はい私は質問を編集しました。手伝ってくれますか? –