C# 物件導向(OO) 如何存取多筆資料

  • 7804
  • 0
  • C#
  • 2019-03-20

最近再練習物件導向概念,我們都知道我們設class 並且創建物件並且在程式碼中導向給他設值。

今天碰到的一個問題是,假設我SQL抓出來是一個多筆的資料,我如果照以往的方式設值給物件,

發現它會因為一直設值而導致覆蓋,所以該怎麼辦呢??


 

多個資料如何利用物件導向概念指向?

一般如果學生資料 我們會這樣寫,先建立student 類別 ,裡面存放著name age 代表 學生的基本資料。

EX: 當我們學生名字叫做chichi 且 年齡為25 時,我們會將student 實體化(new)並將姓名 chichi 指向 name 這個物件

class student{
   public string name{get;set;}
   public int age {get;set;}
}

class program{
   static void Main(string[] args)
   {
       student st = new student();
       st.name = "chichi";
       st.age = 25;
   }
   Console.WriteLine(st.name);
   Console.WriteLine(st.age);
  
}

但在實務裡,我們除了單一指向外,其實有時是多個資料都需要指向,而且還要透過這些資料去做接下來的事情。

原本我認為就是利用ArrayList < 類別 > 去存取及可,但發現卻困難重重,必須你要自己去定義ArrayList<T> 方法

經過一番跟朋友的討論才知道,原來應該用List<T> 方便簡單許多

假設我們有兩位學生 一個叫做chichi 一個叫做 mark 分別一個25 一個29歲

我要用for 迴圈印出兩位的年齡跟姓名

class Program
{
    static void Main(string[] args)
    {
       Program p = new Program();
       //取得多個資料
       List<student> students = new List<student>();            
       students = p.getStudents();
          
       for(int i = 0; i < students.Count; i++)
       {
           Console.WriteLine(students[i].name);
           Console.WriteLine(students[i].age);
       }
           Console.ReadLine();
    }

    public List<student> getStudents()
    {
       List<student> students = new List<student>();
       students.Add(new student
       {
            name = "chichi",
            age=25
       });

       students.Add(new student
       {
            name = "mark",
            age = 29
        });
        return students;
    }
        
}

class student
{
   public string name { get; set; }
   public int age { get; set; }
}


在糾結的時候詢問了我的大神mark 先生,卻被他問了一句。

你知道 array 跟 list 差在哪邊嗎?

昏倒QQ 我哪知道~

我又不是大神,所以決定寫在下篇 。