當需要臨時組合多個不同類型的值(如坐標 X/Y/Z、用戶 ID/Name/Age)時,定義專門的 Class 或 Struct 顯得繁瑣,而使用 object[] 或 dynamic 又失去類型安全。
Tuple<T1, T2, T3> 及泛型列表.NET Framework 4.0+ 引入 System.Tuple 類,支持最多 8 個泛型參數(Tuple<T1...T8>),內部再嵌套 TRest 理論上無限擴展。對於固定三個元素的場景,直接使用 List<Tuple<T1, T2, T3>> 即可。
// 定義存儲:用戶ID、姓名、年齡
var userData = new List<Tuple<int, string, int>>();
userData.Add(Tuple.Create(1001, "張三", 25));
userData.Add(Tuple.Create(1002, "李四", 30));
// 遍歷訪問
foreach (var item in userData) {
Console.WriteLine($"ID: {item.Item1}, Name: {item.Item2}, Age: {item.Item3}");
}
現代 C# 提供更簡潔的 ValueTuple 語法(需引用 System.ValueTuple NuGet 包):
var userList = new List<(int Id, string Name, int Age)>();
userList.Add((1001, "張三", 25));
// 訪問更直觀
Console.WriteLine($"Name: {userList[0].Name}");
Tuple 為「臨時數據組合」提供了標準、類型安全、無需定義類的解決方案,List<Tuple<...>> 是處理「多組固定長度異構數據」的經典模式。