可能重複:
Duplicate keys in .NET dictionaries?是否有詞典<Key,Value>沒有唯一鍵?
我需要創建一個Collection<string,object>
,一個是字符串,另一個是一個對象。 我無法使用詞典,因爲沒有任何項目是唯一的。
有什麼辦法可以創建List<T,T>
?因爲我不想創建一個對象來保存這兩個值只是爲了在單個foreach循環中使用它。
謝謝
可能重複:
Duplicate keys in .NET dictionaries?是否有詞典<Key,Value>沒有唯一鍵?
我需要創建一個Collection<string,object>
,一個是字符串,另一個是一個對象。 我無法使用詞典,因爲沒有任何項目是唯一的。
有什麼辦法可以創建List<T,T>
?因爲我不想創建一個對象來保存這兩個值只是爲了在單個foreach循環中使用它。
謝謝
嘗試List<Tuple<string, object>>
。然後,您可以在列表中獲得通常的linq支持,以獲得每個Tuple<string, object>
。
從.NET 4起,可以使用Tuple<,>
class,但是您可以輕鬆模仿您自己的元組類型,而無需太多麻煩。
我認爲元組根據它們的項目值被認爲是相等的,但是與object
這可能是參考平等,因此不應該是相等的......如果這是有意義的!平等
此處瞭解詳情:
更新:
如果您需要的項目清單與查詢的目的鑰匙聯繫起來,重複的問題答案正確地突出Lookup
類(在你的情況下,Lookup<string, object>
),這將表達你的意圖比List<Tuple<string, object>>
更清楚一點。
嘗試創建自己的自定義類,並用它
class KeyValue<Tkey,TValue>
{
public Tkey Key {get;set;}
public TValue Value {get;set;}
}
使用像
List<KeyValue<string,string>> list = new List<KeyValue<string,string>>();
謝謝,我寫了我,我想避免創建新的對象類型。 – eugeneK 2012-07-10 08:51:04
可以使用
List<KeyValuePair<string,object>>
或
Dictionary<string,List<object>>
也許你可以使用Tuple類創建一個元組列表?事情是這樣:
List<Tuple<String, Object>> list = new List<Tuple<String, Object>>();
你有沒有考慮過使用「集團通過」然後轉身分組結果到字典?如果您正在使用較早版本的
var list = new List<Tuple<string, object>>();
:
不確定它會在這種情況下工作。 – eugeneK 2012-07-10 08:48:06
如果您使用.NET 4,你可以使用元組(http://msdn.microsoft.com/en-us/library/system.tuple.aspx)對象。NET,你可以自己實現Tuple類:Equivalent of Tuple (.NET 4) for .NET Framework 3.5
enum是否適合你的需求?我不知道你想實現。 – Freeman 2012-07-10 08:42:35
爲什麼不能創建'Dictionary>'? –
2012-07-10 08:42:56
KeyValuePair的列表? http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx – dash 2012-07-10 08:43:00