2012-08-05 39 views
-7

有沒有一種方法可以用這種方式創建列表?具有通用值的KeyValuePair

List<string,KeyValuePair<string,T>> lst; 
+0

已經是一個列表... – 2012-08-05 09:43:54

+0

你能解釋你正在做什麼,或者你想存儲在這個對象中的數據嗎?您所描述的'列表'不是一個列表,是非法的,並且沒有意義。 – 2012-08-05 09:46:03

+0

列表的簽名是'List '。這意味着您只能在括號內提供一種類型。你會從你給的例子中期望什麼樣的定義? – log0 2012-08-05 09:46:05

回答

1

可能:

所有的
Dictionary<String, Dictionary<String, T>> lst; 
+0

從標題判斷,問題似乎是關於泛型類型的參數,而不是關於列表類。 – 2012-08-05 09:49:06

4

首先,List<T>只接受一個通用的說法,所以你不能指定stringKeyValuePair<string, T>。正如指出的,也許你的意思是Dictionary<K, V>

通常,只有當您的代碼在T參數中出現在泛型方法或類中時纔可能,該泛型方法或類本身接受名爲T的類型參數。

如果您希望能夠在列表中存儲不同的元素(即T的各種類型)這是不可能的。想象一下,如果每件物品都有不同的T,首先打字到T的優勢是什麼?你不能對這些值做任何假設,因爲它們的類型是未知的。因此,只需指定您的值可能屬於的所有類型的最具體的通用基本類型,如果它們確實不共享任何其他常見特徵,則可能爲System.Object

+0

這正是我正在尋找的答案,謝謝。 – Lopierdis 2012-08-06 06:13:04

+0

@Lopierdis:你可以選擇接受的答案嗎?或者現在問題已經解決了,現在不可能了嗎? – 2012-08-06 07:31:53