2016-10-04 11 views
0

年齢に応じて映画のリストを作った。年齢を18歳以上にすると、リスト全体を見ることができます。あなたの年齢が少ない場合は、あなたの年齢に応じて減らされたリストを見ることになります。C#特定のオブジェクトをilistから取る方法

私は映画の名前でilistを作ったが、それを表示するときにリストから特定の映画を引き出す方法を知らない。ここで

は、これまでの私のコードです:

Console.Write("Hi, if you wish to see a movie please enter your age: "); 

string AgeAsAString = Console.ReadLine(); 
int Age = (int)Convert.ToInt32(AgeAsAString); 
List<String> ilist = new List<String>(); 
ilist.Add("Made in Daghenham"); 
ilist.Add("Buried"); 
ilist.Add("Despicable Me"); 
ilist.Add("The Other Guys"); 
ilist.Add("Takers"); 
string combindedString = string.Join(",", ilist); 

{ if (Age >= 18) 
     Console.Write(combindedString); 
    else 
     if (Age < 18) 
     Console.Write() 


     Console.ReadKey(); 

私はそれに簡単な答えを見つけるように見えることはできませんし、私はちょうどこの全体のコーディング世界で始めています。助けてくれてありがとう!

+2

各動画の年齢制限は保存されていないようです。それは始めるのに良い場所になるでしょう。ムービーの名前や年齢制限などを保存するクラスを作成する方法を調べる必要があります。 –

+3

'if'の前に浮動中括弧がある理由は何ですか? –

+1

次のコード行の落とし穴を考えてみてください。 'int Age =(int)Convert.ToInt32(AgeAsAString);'またintにint型をキャストしている理由を尋ねます。 :) –

答えて

2
public class Movie 
{ 
    public int MinAge {get;set;} 
    public string Name{get;set;} 
} 
var Movies = new List<Movie>{new Movie{Name = "blahblah", MinAge = 18}}; 
//create the list of movies with the age information 
var filtered = (from m in Movies where m.MinAge >= 18 select m).ToList(); 
2

はあなたが

class Movie 
{ 
    public string Name { get; set; } 
    public int AgeRestriction { get; set; } 
} 

を必要とする映画の情報を保持しているクラスを探しているとすることができ、そして、あなたが

 Console.Write("Hi, if you wish to see a movie please enter your age: "); 

     string AgeAsAString = Console.ReadLine(); 
     int Age = (int) Convert.ToInt32(AgeAsAString); 

     List<Movie> ilist = new List<Movie>(); 

     ilist.Add(new Movie() 
     { 
      Name = "Buried", 
      AgeRestriction = 18 
     }); 

     ilist.Add(new Movie() 
     { 
      Name = "Despicable Me", 
      AgeRestriction = 10 
     }); 

     if (Age >= 18) 
      return string.Join(",", ilist.Select(x => x.Name)); 
     else 
      return string.Join(",", ilist.Where(x => x.AgeRestriction <= Age)); 

     Console.ReadKey(); 
を望むように、そのクラスオフに基づいてリストを移入し、結果を返します

私はあなたがリストの代わりに結合された文字列として結果を必要と仮定しました。年齢に基づいてリストをフィルタリングするには、使用するだけです。

ilist.Where(x => x.AgeRestriction <= Age).ToList() 
関連する問題