2011-08-17 14 views
15

不知道我是否有一個「沉重的一天」 - 但我只是想知道這裏最好的路線是什麼。什麼是存儲字符串對,在.NET中創建對象或使用類的最佳方式?

語境:

我有字段列表,我想保存與他們別名(我使用.NET 2.0 BTW),例如

enter image description here

因此,它本質上是對字符串:

引用ref

社區,

POST_CODE,郵編

...我在想這似乎爲了不斷創建對象來創建這樣的對象,所以我應該創建一個StringDictionary並以這種方式存儲值,儘管我不會使用StringDictionary類的任何功能,而且我也不會爲關鍵值對關聯等 - 我只想保留一對字符串本質上。

任何幫助/指針會很好。

回答

6

如果您的「字段名稱」是唯一的,則可以使用通用Dictionary<string, string>

否則,如果您不介意重複的密鑰,則可以使用Lookup類。

我不會太擔心你是否使用這些類的全部功能。我認爲更重要的應該是寫簡單,易於閱讀的維護代碼&。

5

Tuple<string,string>?它構建在.net 4.0中,並且它是輕量級的。

+0

看看請注意與重複鍵,如果你想避免的。 – Jayee

31

.NET的「pair」泛型類是Tuple。你可以使用它:

var strings=new List<Tuple<string, string>>(); 
strings.Add(Tuple.Create("REFERENCE", "Ref")); 

如果最左邊的字符串是唯一的(即一個鍵),字典是一個完全可以接受的替代品。否則你會得到錯誤。

至於使用內建集合還是創建實際對象會更好,這取決於您的需要(您以後會添加更多列嗎?不能使用字典方法來完成此操作),多久你使用它(如果它是一個核心類型,你應該爲它創建一個域模型)等。

編輯:至於沒有使用任何字典內置功能,這是不正確的:你使用它二進制搜索算法和內部樹結構,用於快速查找。一個Tuple或您自己的類型列表很可能不會有這個,它會恢復到線性搜索。

3

在我看來,最好是使用自定義的結構來存儲兩個字符串,這是因爲:System.Collections.Generic.DictionarySystem.Collections.Specialized.NameValueCollection需要方法Add爲字符串添加到他們 - 這是其他行的代碼。 System.Tuple類只具有ReadOnly屬性 - 這可能是一個障礙。

簡單的結構的實施例:

public struct DoppelWert 
{ 
public string Wert1; 
public string Wert2; 
} 
+1

好的解決方案,我喜歡字段名稱 – CindyH

相關問題