C# 基礎類庫(BCL)提供了大量開箱即用的方法,但開發中常因記不住命名空間、參數順序或格式字串而中斷思路。本文將高頻 API 分類整理,附真實可執行片段,適合列印貼在工位或存入代碼片段庫。
// 當下
DateTime now = DateTime.Now; // 本地時間
DateTime utc = DateTime.UtcNow; // UTC 時間
// 元件提取
int year = now.Year;
int month = now.Month;
int day = now.Day;
int hour = now.Hour;
int minute = now.Minute;
int second = now.Second;
int ms = now.Millisecond;
// 格式化輸出
now.ToString("yyyy-MM-dd HH:mm:ss"); // 2024-05-20 14:30:05
now.ToString("yyyy/MM/dd"); // 2024/05/20
now.ToString("HH:mm"); // 14:30
now.ToString("fff"); // 毫秒三位數
// 運算
DateTime tomorrow = now.AddDays(1);
DateTime lastWeek = now.AddDays(-7);
TimeSpan diff = now - lastWeek; // 7.00:00:00
// 解析
DateTime dt = DateTime.Parse("2024-05-20");
DateTime dt2 = DateTime.ParseExact("20240520", "yyyyMMdd", CultureInfo.InvariantCulture);
string s = "Hello World";
int len = s.Length; // 11
bool b = s.StartsWith("He"); // true
bool b2 = s.EndsWith("ld"); // true
bool b3 = s.Contains("lo"); // true
int idx = s.IndexOf("o"); // 4
int idx2 = s.LastIndexOf("o"); // 7
string sub = s.Substring(6); // "World"
string sub2 = s.Substring(0, 5); // "Hello"
string[] parts = "a,b,c".Split(','); // ["a","b","c"]
string joined = string.Join("|", parts); // "a|b|c"
s.Replace("World", "C#"); // "Hello C#"
s.Trim(); // 移除首尾空白
s.TrimStart(), s.TrimEnd();
s.ToUpper(), s.ToLower();
s.ToUpperInvariant(); // 文化特性無關,效能較好
12345.ToString("N"); // 12,345.00
12345.ToString("C"); // ¥12,345.00 (依當前文化)
12345.ToString("E"); // 1.234500E+004
12345.ToString("F4"); // 12345.0000
12345.ToString("X"); // 3039 (十六進位)
0.5.ToString("P"); // 50.00%
var sb = new StringBuilder();
sb.Append("中華");
sb.Append("人民");
sb.Append("共和國");
string result = sb.ToString(); // "中華人民共和國"
// 進階:格式化拼接
sb.AppendFormat("Year: {0}, Month: {1}", DateTime.Now.Year, DateTime.Now.Month);
// 字串 → 數值
int i = int.Parse("123");
int i2 = int.TryParse("abc", out int v) ? v : 0; // 安全轉換
double d = double.Parse("3.14");
decimal m = decimal.Parse("19.99");
// 數值 → 字串
string s1 = 123.ToString();
string s2 = 123.456.ToString("F2");
// 位元組陣列 ↔ 字串 (編碼)
byte[] bytes = Encoding.UTF8.GetBytes("中文");
string str = Encoding.UTF8.GetString(bytes);
// Base64
string b64 = Convert.ToBase64String(bytes);
byte[] back = Convert.FromBase64String(b64);
var list = new List { 3, 1, 4, 1, 5 };
list.Sort(); // 1,1,3,4,5
var distinct = list.Distinct(); // 1,3,4,5
var where = list.Where(x => x > 2); // 3,4,5
var select = list.Select(x => x * 2);
var first = list.FirstOrDefault(x => x > 2); // 3
var sum = list.Sum(); // 14
var dict = list.ToDictionary(x => x, x => x * 2);
// 讀取全部文字
string text = File.ReadAllText("data.txt", Encoding.UTF8);
string[] lines = File.ReadAllLines("data.txt");
// 逐行讀取 (大檔案)
foreach (var line in File.ReadLines("big.txt")) { /* ... */ }
// 寫入
File.WriteAllText("out.txt", "Hello");
File.AppendAllLines("out.txt", new[] { "Line1", "Line2" });
// 串流複製
using (var src = File.OpenRead("a.jpg"))
using (var dst = File.Create("b.jpg"))
src.CopyTo(dst);
// 路徑操作
string dir = Path.GetDirectoryName(path);
string file = Path.GetFileName(path);
string ext = Path.GetExtension(path);
string combined = Path.Combine(dir, "sub", "file.txt");
string full = Path.GetFullPath("..\\data");
// 取得 Client IP (含 Proxy)
string ip = Request.Headers["X-Forwarded-For"]
?? Request.Headers["X-Real-IP"]
?? HttpContext.Connection.RemoteIpAddress?.ToString();
// QueryString
string id = Request.Query["id"];
// Session (ASP.NET Core)
HttpContext.Session.SetString("user", "admin");
string user = HttpContext.Session.GetString("user");
// Response 導向
return Redirect("/Home/Index");
return RedirectToAction("Index", "Home");
var doc = new XmlDocument();
doc.Load("config.xml");
XmlNode node = doc.SelectSingleNode("//appSettings/add[@key='ConnStr']");
string val = node?.Attributes["value"]?.Value;
// LINQ to XML (現代寫法)
var xdoc = XDocument.Load("config.xml");
string val2 = xdoc.Descendants("add")
.FirstOrDefault(x => (string)x.Attribute("key") == "ConnStr")
?.Attribute("value")?.Value;
char c = '中';
char.IsWhiteSpace("A B", 1); // true
char.IsDigit('9'); // true
char.IsLetter('中'); // true
char.IsPunctuation('。'); // true
int code = (int)'中'; // 20013
char ch = (char)22269; // '國'
var regex = new Regex(@"\d{4}-\d{2}-\d{2}");
bool ok = regex.IsMatch("2024-05-20");
Match m = regex.Match("Date: 2024-05-20");
string d = m.Value; // "2024-05-20"
string replaced = regex.Replace("2024-05-20", "YYYY-MM-DD"); // "YYYY-MM-DD"
| 功能區 | 核心命名空間 |
|---|---|
| 基礎型別、集合 | System, System.Collections.Generic |
| LINQ | System.Linq |
| 字串、StringBuilder | System.Text |
| 日期時間 | System |
| 檔案 I/O | System.IO |
| 編碼、Base64 | System.Text |
| 正則 | System.Text.RegularExpressions |
| XML | System.Xml, System.Xml.Linq |
| Web (ASP.NET Core) | Microsoft.AspNetCore.Http |
| 反射、Attribute | System.Reflection |
| 序列化 JSON | System.Text.Json |
將本手冊加入書籤,下次遇到「這個方法叫什麼來著?」時,Ctrl+F 即可秒級定位,專注於業務邏輯而非查閱文件。