資料庫欄位內容以空白分隔(至少 3 個空白),需求:第 1 段給 A、第 2 段給 B、其餘全給 C。
string E = "AA BB CC DD EE FF GG";
string[] parts = E.Split(new[] {' '}, 3, StringSplitOptions.RemoveEmptyEntries);
// parts[0] = "AA"
// parts[1] = "BB"
// parts[2] = "CC DD EE FF GG"
public string[] Split(char[] separator, int count, StringSplitOptions options)
separator:分隔字元陣列(此處 new[] {' '})。count:最大回傳陣列長度。若實際分割段數超過 count,最後一個元素將包含「剩餘未分割的完整字串」。options:RemoveEmptyEntries 移除空白項目(連續空白不產生空字串)。
string E = " AA BB CC DD EE FF GG ";
string[] S = E.Split(new[] {' '}, 3, StringSplitOptions.RemoveEmptyEntries);
string A = S[0]; // "AA"
string B = S[1]; // "BB"
string C = S[2]; // "CC DD EE FF GG"
Console.WriteLine($"A={A}, B={B}, C={C}");
RemoveEmptyEntries,前導/尾隨/連續空白會產生空字串元素,導致索引偏移。count 參數為最大值,實際回傳陣列長度可能小於 count(如字串本身段數不足)。E.Split(' ', 3, StringSplitOptions.RemoveEmptyEntries)。String.Split 固定分隔字元,若分隔規則複雜(如多空白、Tab、逗號混雜),改用 Regex.Split。Span<T> 手寫解析器避免配置陣列。