2013-11-27 83 views
-2

我正在爲我的項目中遇到的問題尋找解決方案。 在我下面的鏈接發現一些有用的:對象還是元組?

One Key to multiple values dictionary in C#?

但是:是不是更好地在字典中使用的對象,而不是使用一個元組?

Object obj = new Object(); 
var dict = new Dictionary<KeyType, obj>(); 
foreach(KeyType kt in dict) 
{ 
    obj.X = value1; 
    obj.Y = value2; 
} 

相反的:

var dict = new Dictionary<KeyType, Tuple<string, int, int, int>>() 

我希望是誰的人可以幫助我。謝謝:)

+3

你的代碼甚至沒有編譯。 'obj.X'不存在 – CodesInChaos

回答

3

如果obj的類型爲Object,則不能在C#中使用obj.X。但是您可以創建一個自定義類,該類自Object,它包含您需要的所有字段和屬性並在字典中使用它。

這確實會優於Tuple解決方案,因爲myObj.SpeedmyTuple.Item2更具描述性。

但是,請注意,Tuple具有您的自定義類可能沒有的某些功能,例如,如果兩個元素都具有相同的元素,則返回true。使用您的自定義班級,Equals將檢查參考平等,除非您覆蓋它。

0

不,這不是更好的使用object - 你失去了你的強打字。

如果你關心你的代碼的詳細程度,你總是可以做這樣的事情:

在文檔的頂部:

using MyDictionary = Dictionary<KeyType, Tuple<string, int, int, int>>; 

那麼你的構造函數做到這一點:

var dictionary = new MyDictionary(); 
0

而不是使用Tuple我更喜歡用兩個/三個字段做一個簡單的類。它是更清潔的解決方案,使用起來更簡單。

相關問題