我需要類似於List<String, Int32, Int32>
。列表一次只支持一種類型,而一次只有兩種字典。有沒有一種乾淨的方式來做類似上面的事情(一個多維的通用列表/集合)?是否有像List <String,Int32,Int32>(多維通用列表)
回答
最好的辦法是爲它創建一個容器,即一類
public class Container
{
public int int1 { get; set; }
public int int2 { get; set; }
public string string1 { get; set; }
}
然後在你需要它
List<Container> myContainer = new List<Container>();
+1,因爲它不需要.Net4元組,並且可以使用類實現輕微實現,但是-1,因爲您應該避免在類上使用公共字段。實現爲一個屬性並使用簡單的'{get;設置;}'而不是。 – 2010-06-08 05:01:08
您可能需要重寫Equals和GetHashCode – 2010-06-08 05:08:26
類型Container應該是不可變的結構體,因爲它只代表值。 – 2010-06-08 05:10:25
在.NET 4中,您可以使用List<Tuple<String, Int32, Int32>>
。
不幸的是我在.NET 3.5上,但我會記住4.0! – Alex 2010-06-08 04:57:19
好代碼,你不能這樣做直到C#3.0,如果您可以像其他答案中提到的那樣使用C#4.0,請使用元組。
但是在C#3.0中創建Immutable structure
並在結構中包裝所有類型的insities,並將結構類型作爲泛型類型參數傳遞給列表。
public struct Container
{
public string String1 { get; private set; }
public int Int1 { get; private set; }
public int Int2 { get; private set; }
public Container(string string1, int int1, int int2)
: this()
{
this.String1 = string1;
this.Int1 = int1;
this.Int2 = int2;
}
}
//Client code
IList<Container> myList = new List<Container>();
myList.Add(new Container("hello world", 10, 12));
如果您好奇爲什麼要創建不可變的結構 - checkout here。
根據你的評論,這聽起來像你需要一個帶有字符串鍵的字典中存儲的兩個整數的結構。
struct MyStruct
{
int MyFirstInt;
int MySecondInt;
}
...
Dictionary<string, MyStruct> dictionary = ...
這是假設字符串是唯一的。 – 2010-06-08 05:03:57
- 1. int32.Parse(String,IFormatProvider)通過int32.Parse(String)的用例是什麼?
- 2. Array/List的列表元素<String>
- 3. JAXB XJC創建列表< Objects >而不是List < String >
- 4. 是否有可能將列表框數據源設置爲List <Tuple <string,string,int >> Item1 only?
- 5. 如何檢查字符串是否在列表中<string> in Dictionary <int,List <string>> in c#?
- 6. 如何使用DataContractSerializer序列化Dictionary <string,List <string>>?
- 7. 檢查List <Dictionary <string,object >>中是否存在Dictonary <string,object>?
- 8. List <Map <String,String >> vs List <Object>
- 9. 檢查列表<string>是否包含在另一個列表<string>
- 10. 在C#中,C++是否有像List <string>這樣的東西?
- 11. List <string> binding
- 12. 如何將List <Single <String>>轉換爲列表<String>?
- 13. Post Map <String,List <String>>
- 14. 轉換List <HashMap <String,String >>到列表<map <String,String >> java
- 15. 列表<String> list = new ArrayList <String>和ArrayList <String> list = new ArrayList <String>之間有什麼不同?
- 16. C#如何通過list.count命令dictionary <string,list <string>>?
- 17. 檢查列表<Of List<T>>是否包含列表<T>
- 18. 多個列表<String>在一行
- 19. 反序列化List <Map <String,String >> QueryParam in Jersey 1
- 20. 如何將List <String[]>轉換成列表<MyObject>?
- 21. 如何將List <String>轉換爲列表<MyClass>?
- 22. 如何把List <string>轉換成列表<int>?
- 23. 通過列表迭代<String[]>
- 24. C#列表<string>列表中<string> [] .toList()
- 25. 在primefaces數據表中遍歷List <Map <String,String >>?
- 26. For-Each Loop,Map <String,Map <String,List <String> >>
- 27. Javapoet - TypeName - HashMap <String,HashMap <String,List <String> >> generation?
- 28. 試圖將元素添加到列表<String[,]> S = new List <String[,]>();
- 29. 比較兩個字符串與散列表<String,List <String>>
- 30. 有沒有更好的方法來實現HashMap <String,List <HashMap <String,List <Details> >>>?
Int32的重複很有趣。你想做什麼? – 2010-06-08 04:53:44
我必須用一個字符串在語義上關聯兩個不同的數字,然後用它來在視圖中呈現數據。 – Alex 2010-06-08 04:56:37
我認爲@Alex有像我這樣的'java'背景。 – 2013-07-16 07:33:04