[英]C# list of array type
我想創建一個數組類型的列表。 我想創建包含值的數組:
array = [a,b];
然后我想把這個數組放在列表中:
List<Array> list = new List<Array>( );
我可以用字符串類型列表來做到這一點,但對數組類型沒有運氣:
List<String> list = new List<String>( );
我來自 javascript 背景,對 c# 中的集合概念不太熟悉。 另外,我如何像在 javascript 中那樣在 c# 中創建數組:
var arrTemp = ["a", "b"];
好吧,因為你的數組是string[]
:
var arrTemp = ["a", "b"];
您必須將所需list
聲明為List<string[]>
:
// list of string arrays
List<string[]> list = new List<string[]>() {
new string[] {"a", "b"}
};
如果您希望能夠將任何數組放入list
,請盡可能將其聲明為松散( List<object[]>
):
// list of abitrary arrays
List<object[]> list = new List<object[]>() {
new string[] {"a", "b"},
new double[] {123.45, 789.12, 333.55},
new object[] {'a', "bcd", 1, 244.95, true},
};
希望這可以幫到你
var test = new List<int[]>();
您實際上可以創建一個數組列表:
var listOfArrays = new List<Array>();
這樣做的問題是很難使用數組本身,因為Array
類型不支持數組語法。 (例如,您不能執行listOfArrays[0][0]
)相反,您必須使用GetValue
方法來進行檢索:
var obj = listOfArrays[0].GetValue(0);
但這還有另一個問題。 GetValue
方法返回object
,因此雖然您始終可以將其強制轉換為所需的類型,但選擇此方法會失去類型安全性。
或者,您可以只存儲object[]
數組:
var listOfArrays = new List<object[]>();
var obj = listOfArrays[0][0];
但是雖然這解決了數組符號的問題,但你仍然失去了類型安全性。
相反,如果可能的話,我會建議找到特定類型,然后只使用該類型的數組:
var listOfArrays = new List<string[]>();
string s = listOfArrays[0][0];
例如,一個字符串數組將是
var arrayOfString = new string[]{"a","b"};
// or shorter form: string[] arrayOfString = {"a","b"};
// also: var arrayOfString = new[] { "a", "b" }
然后創建一個 list-of-arrayOfString 將是
var listOfArrayOfString = new List<string[]>();
這適用於任何類型,例如,如果您有一個類MyClass
var arrayOfMyClass = new MyClass[]{ ... }; // ... is you creating instances of MyClass
var list = new List<MyClass[]>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.