2017-05-03 64 views
-2

class student_details { public int studId {get;組; }如何保存新列表的值

public string FirstName { get; set; } 

    public string LastName { get; set; } 

    public string UGender { get; set; } 

    public int UAge { get; set; } 

} 

類節目 {

static void Main(string[] args) 
    { 
     string studYear = ""; 
     int Id = 0; 
     //InputDetails 
     #region 
     Input: 

     Console.WriteLine("\nStudent Year Identifier\n\n"); 
     Console.WriteLine("Enter FirstName: "); 
     string Fname = Console.ReadLine(); 
     Console.WriteLine("Enter LastName: "); 
     string Lname = Console.ReadLine(); 
     Console.WriteLine("Enter Gender: "); 
     string Gender = Console.ReadLine(); 
     Console.WriteLine("Enter Age: "); 
     int Age = Convert.ToInt16(Console.ReadLine()); 
     if (Age < 14) 
     { 
      studYear = "N/A"; 
     } 
     else if (Age <= 15) 
     { 
      studYear = "FirstYear"; 
     } 
     else if (Age <= 17) 
     { 
      studYear = "SecondYear"; 
     } 
     else if (Age <= 19) 
     { 
      studYear = "ThirdYear"; 
     } 
     else if (Age >= 20) 
     { 
      studYear = "ForthYear"; 
     } 
     #endregion 


     //List 
     #region 

     List<Model.student_details> listOfstudentDetails = new List<Model.student_details>(); 
     #endregion 
     //Looping 
     #region 
     Console.WriteLine("Add more student details (Yes or No)?"); 
     string answer = Console.ReadLine(); 
     if (answer == "Yes" || answer == "YES" || answer == "yes" || answer == "y" || answer == "Y") 
     { 
      Console.Clear(); 

      listOfstudentDetails.Add(new Model.student_details { studId = Id++, FirstName = Fname, LastName = Lname, UGender = Gender, Uage = Age }); 
      goto Input; 
     } 
     else if (answer == "No" || answer == "NO" || answer == "no" || answer == "n" || answer == "N") 
     { 
      Console.Clear(); 

      listOfstudentDetails.Add(new Model.student_details { studId = Id++, FirstName = Fname, LastName = Lname, UGender = Gender, Uage = Age }); 
      //var filterName = listOfstudentDetails; 
      foreach (var item in listOfstudentDetails) 
      { 
       Console.WriteLine("Student Id = " + item.studId + ": Firstname is " + item.FirstName + " Lastname is " + item.LastName + " and Gender is " + item.UGender+ " and Age is equal to " + item.Uage + " and his age is applicable for " + studYear); 
      } 
      Console.ReadKey(); 

     } 
     #endregion 

    } 

//當運行應用程序時,程序會要求進入學生的詳細信息。輸入學生信息沒有限制。創建詳細信息後,程序將始終詢問用戶是否會「添加更多學生信息(是或否)?」如果用戶輸入「是」,程序將要求再次輸入以下問題。如果「否」,程序將執行帶有字符末尾的註釋的學生列表,如下面給出的例子。

輸出: 的學生詳情列表:

學生ID = 1:他的名字是約翰尼和他的姓氏是喝彩。年齡等於20歲,他的年齡適用於第三年。

學生ID = 2:他的名字是史密斯,他的姓氏是巴拉克年齡等於19歲,他的年齡適用於第三年。

學生ID = 3:她的名字是珍妮,她的姓氏是斯威夫特。年齡等於14歲,她的年齡適用於第一年

+1

你爲什麼用「basic」標記這個問題? –

+0

你在準備完成什麼?問題是什麼? –

+0

你的代碼究竟有什麼問題?我能看到的唯一情況是studYear僅在輸入時設置。所以當你輸出清單時,它只會顯示最後一個學生的正確值... – Kempeth

回答

1

您每次循環都用新列表覆蓋列表。

嘗試在Input標籤上方定義您的列表。

+0

感謝先生它的工作^ _^ –

1

您在每個輸入週期後重寫您的列表。這樣,你只有一個學生在你的名單上。

移動你的宣言,並列出初始化方法的頂部:

static void Main(string[] args) 
{ 
    string studYear = ""; 
    int Id = 0; 
    List<Model.student_details> listOfstudentDetails = new List<Model.student_details>(); 
} 

它通常是宣佈,在其範圍的開始初始化變量一個很好的做法。

此外,您不應該使用goto重複您的輸入週期。您應該使用whiledo-while循環。

//initialize your variables 
... 

do 
{ 
    //input students 
    ... 
} while (answerWasYes); 

//list students 
... 

您的goto結構是導致該問題的主要原因,因爲它使得程序流程難以遵循。

+0

先生它會顯示我輸入的最後一個列表。僅1行。 –

+0

你寫'新List ()'的行必須在你的循環/ goto標籤之前 – Kempeth

+0

明白了,先生。感謝它的工作。感謝您的幫助 –