首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 常用基礎語法與核心 API 速查手冊

     編輯:關於C語言

前言:高效開發的「隨身字典」

C# 基礎類庫(BCL)提供了大量開箱即用的方法,但開發中常因記不住命名空間、參數順序或格式字串而中斷思路。本文將高頻 API 分類整理,附真實可執行片段,適合列印貼在工位或存入代碼片段庫。

一、 DateTime 日期時間操作


// 當下
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);

二、 字串處理

1. 基本屬性與檢查


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

2. 截取與分割


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"

3. 替換、修剪、大小寫


s.Replace("World", "C#");              // "Hello C#"
s.Trim();                              // 移除首尾空白
s.TrimStart(), s.TrimEnd();
s.ToUpper(), s.ToLower();
s.ToUpperInvariant();                  // 文化特性無關,效能較好

4. 格式化數值/日期


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%

5. StringBuilder 高效拼接


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);

四、 集合與 LINQ 精選


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);

五、 檔案與串流 I/O


// 讀取全部文字
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");

六、 Web 相關


// 取得 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");

七、 XML 操作


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
LINQSystem.Linq
字串、StringBuilderSystem.Text
日期時間System
檔案 I/OSystem.IO
編碼、Base64System.Text
正則System.Text.RegularExpressions
XMLSystem.Xml, System.Xml.Linq
Web (ASP.NET Core)Microsoft.AspNetCore.Http
反射、AttributeSystem.Reflection
序列化 JSONSystem.Text.Json

將本手冊加入書籤,下次遇到「這個方法叫什麼來著?」時,Ctrl+F 即可秒級定位,專注於業務邏輯而非查閱文件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved