原文程式碼疑為 Java 風格 (ArrayList、.add()、.get()、System.out.println),本文重寫為標準 C# 語法,示範 List<string[]> 的建立、填充、遍歷與字串化輸出。
using System;
using System.Collections.Generic;
using System.Text;
public class ListArrayDemo
{
public static void Main()
{
// 1. 建立泛型列表,元素為 string[]
List<string[]> userList = new List<string[]>();
// 2. 填充測試資料
for (int i = 0; i < 10; i++)
{
string[] dto = new string[2];
dto[0] = $"編號{i}";
dto[1] = $"名稱rname{i}";
userList.Add(dto);
}
// 3. 遍歷並輸出 (多種方式)
if (userList.Count > 0)
{
Console.WriteLine("=== 方式一:逐行輸出 ===");
foreach (string[] arr in userList)
{
Console.WriteLine($"編號: {arr[0]}, 名稱: {arr[1]}");
}
Console.WriteLine("\n=== 方式二:序列化為單一字串 (JSON 風格) ===");
StringBuilder sb = new StringBuilder();
sb.Append("[");
for (int i = 0; i < userList.Count; i++)
{
string[] arr = userList[i];
sb.Append($"{{\"id\":\"{arr[0]\",\"name\":\"{arr[1]}\"}}");
if (i < userList.Count - 1) sb.Append(",");
}
sb.Append("]");
Console.WriteLine(sb.ToString());
Console.WriteLine("\n=== 方式三:簡單串接所有值 ===");
string allValues = string.Join(" | ", userList.SelectMany(arr => arr));
Console.WriteLine(allValues);
}
}
}
| 功能 | Java | C# |
|---|---|---|
| 動態陣列 | ArrayList / List<T> | List<T> |
| 新增元素 | .add() | .Add() |
| 取得元素 | .get(i) | [i] 或 .ElementAt(i) |
| 長度/計數 | .size() | .Count 屬性 |
| 列印 | System.out.println | Console.WriteLine |
| 字串格式化 | String.format | $"" 插值字串 / string.Format |
using System.Linq;
// 全部元素扁平化並以分隔符串接
string flat = string.Join(", ", userList.SelectMany(arr => arr));
// 依條件篩選後轉字串
string filtered = string.Join("; ",
userList.Where(arr => arr[0].Contains("5"))
.Select(arr => $"{arr[0]}:{arr[1]}"));
List<T>。string[] 直接 ToString():會得到 System.String[] 而非內容,必須用 string.Join 或迴圈展開。arr[0] 前確認 arr.Length > 0。善用泛型集合與 LINQ,讓資料轉換代碼簡潔、型別安全且高效能。