using System.Collections.Generic;
public static void Main()
string[] stock_num = new string[] { "2330", "3008" };
StockList stockList = new StockList(stock_num.Select(s => new Stock { Code = s }).ToList());
stockList.AddStock(new Stock { Code = "0050", Name = "元大台灣50", Value = 139.25M, Qty = 3000 });
stockList.AddStock(new Stock { Code = "VTI", Name = "Vanguard Total Stock Market ETF", Value = 217.15M, Qty = 10 });
stockList.EditStock(new Stock { Code = "2330", Name = "大立光", Value = 3140M, Qty = 10 });
stockList.EditStock(new Stock { Code = "3008", Name = "台積電", Value = 610M, Qty = 500 });
stockList.DeleteStock("VTI");
Console.WriteLine(stockList.FindCodeOrDefault("2330"));
Console.WriteLine(stockList.FindCodeOrDefault("0056"));
foreach (var stock in stockList.QueryAll())
Console.WriteLine(stock);
private List<Stock> _stockList = new List<Stock>();
public StockList(List<Stock> stockList)
if (stockList != null) _stockList = stockList;
public Stock FindCodeOrDefault(string code)
return _stockList.Find(f => f.Code == code);
public bool AddStock(Stock addStock)
if (FindCodeOrDefault(addStock.Code) != null) return EditStock(addStock);
_stockList.Add(addStock);
public bool EditStock(Stock editStock)
var stock = FindCodeOrDefault(editStock.Code);
if (stock == null) return false;
stock.Name = editStock.Name;
stock.Value = editStock.Value;
stock.Qty = editStock.Qty;
public bool DeleteStock(string code)
var deleteStock = _stockList.SingleOrDefault(s => s.Code == code);
_stockList.Remove(deleteStock);
public List<Stock> QueryAll()
public string Code { get; set; }
public string Name { get; set; }
public decimal Value { get; set; }
public int Qty { get; set; }
public override string ToString()
return $"股票代號: {Code}、股票名稱: {Name}、股票價值: {Qty * Value}";