在程式開發中,經常需要處理「一堆資料」。
例如:要同時管理多檔股票,光靠一個一個變數會很難維護。
今天我們要學會 集合 (Collection),並透過 List<T> 和 Dictionary<TKey, TValue> 來管理股票清單。
C# 的集合分成兩類:
ArrayList
List<T>
using System;
using System.Collections;
class Program
{
static void Main()
{
ArrayList list = new ArrayList();
list.Add("2330");
list.Add(1265m); // 可以放不同型別
foreach (var item in list)
{
Console.WriteLine(item);
}
}
}
問題:
ArrayList 允許不同型別混在一起,容易出錯。using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> symbols = new List<string>();
symbols.Add("2330");
symbols.Add("2303");
foreach (string s in symbols)
{
Console.WriteLine(s);
}
}
}
好處:
string)ArrayList 更好List<T> 是動態陣列,可以隨時新增或移除元素。
List<string> stocks = new List<string>();
stocks.Add("2330");
stocks.Add("2303");
Console.WriteLine(stocks[0]); // 2330
Console.WriteLine($"股票數量:{stocks.Count}");
常見操作:
Add() 新增Remove() 移除Count 取得數量[] 透過索引存取Dictionary<TKey, TValue> 是「鍵值對集合」,適合快速查找。
Dictionary<string, decimal> prices = new Dictionary<string, decimal>();
prices["2330"] = 1265m;
prices["2303"] = 45.7m;
Console.WriteLine(prices["2330"]); // 1265
常見操作:
Add(key, value) 新增ContainsKey(key) 判斷是否存在Remove(key) 移除簡單記法:
public class Stock
{
public string Symbol { get; set; }
public decimal Price { get; set; }
}
class Program
{
static void Main()
{
// 用 List 管理股票
List<Stock> stocks = new List<Stock>
{
new Stock { Symbol = "2330", Price = 1265m },
new Stock { Symbol = "2303", Price = 45.7m }
};
foreach (Stock s in stocks)
{
Console.WriteLine($"{s.Symbol} 價格 {s.Price}");
}
// 用 Dictionary 快速查找股票
Dictionary<string, Stock> stockDict = new Dictionary<string, Stock>();
stockDict["2330"] = new Stock { Symbol = "2330", Price = 1265m };
if (stockDict.ContainsKey("2330"))
{
Console.WriteLine($"2330 的價格是 {stockDict["2330"].Price}");
}
}
}
今天我們學會了:
List<T> 適合依序處理資料Dictionary<TKey, TValue> 適合快速查找資料List 存清單,Dictionary 查價格