TQC+ C# 認證教學手冊

202、成績計算

☑易 ☐中 ☐難

Collections

Programming Concepts: Collections

System.Collections

  • ArrayList
  • Hashtable
  • Queue
  • Stack

System.Collections.Generic

  • Dictionary<TKey, TValue>
  • List<T>
  • Queue<T>
  • SortedList<TKey, TValue>
  • Stack<T>

參考資料:泛型

存取 Dictionary

Dictionary 是一種 Collections(集合)的類別。

建議使用 foreach 迴圈搭配 KeyValuePair 來實作。

格式化輸出浮點數

利用 ToString

double num = 123.456;
num.ToString("#0.00");

更多練習

  • 比較 Dictionary 與 Hashtable 的差異?請使用 Hashtable 改寫本題程式
  • 請改成用 List<T> 撰寫,並試著比較其優缺點

參考程式碼

using System;
using System.Collections.Generic;

namespace CSD02
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, double> students = new Dictionary<string, double>();

            students.Add("Mark", 75.0);
            students.Add("Sue", 54.0);
            students.Add("Shelly", 92.0);
            students.Add("Patrick", 60.0);
            students.Add("Allen", 43.0);

            int pass = 0, fail = 0;
            double passTotal = 0, failTotal = 0;

            foreach (KeyValuePair<string, double> pair in students)
            {
                if (pair.Value >= 60)
                {
                    pass++;
                    passTotal += pair.Value;
                }
                else
                {
                    fail++;
                    failTotal += pair.Value;
                }
            }

            Console.WriteLine("已通過 人數: {0}, 平均: {1:0.00}", pass, passTotal / pass);
            Console.WriteLine("未通過 人數: {0}, 平均: {1:0.00}", fail, failTotal / fail);

            Console.ReadLine();
        }
    }
}