[英]ASP.NET which type of collection should I use?
我正在寫一個課程來保存我網站上的搜索。 我希望在類中包含指定的所有參數的“數組”。 我嘗試了一個NameValueCollection,但我遇到的問題是當我有一個多選(例如狀態)時,它只存儲其中一個條目,因為密鑰被占用。 我需要一個集合類型,讓我有類似以下內容:
Name => Bob
State => Alaska
State => Oregon
State => Washington
Company => Acme
我應該使用什么類型的收藏?
編輯:==============================
我不確定到目前為止的評論會有所幫助。 讓我再解釋一下。 此搜索類將用於保存我網站上任何搜索的參數。 不同的搜索可能具有或不具有相同的參數。 當調用此類save方法時,搜索將被轉儲到數據庫中。 將在Searches表中創建一條記錄,並且將在SearchesParameters表中創建集合中的項目。 SearchesParamaters表包含這些列(ID,searching_ID,key,value)。
如果存在兩個具有“State”鍵的參數,則數據庫可以更少關注。 為了使我的類足夠通用,可以在所有搜索中使用而不必更新,我希望有一個集合/數組,讓我擁有鍵/值對,並讓我擁有相同鍵的多個實例。 真的我只想調用searchObj.addParameter(KEY,VALUE); 如果我可以可靠地獲得正確的值與正確的值配對,那么類在后端處理的方式幾乎是無關緊要的。
是一個集合的方式,或者我應該考慮像存儲鍵和存儲值的兩個數組?
將String映射到List<string>
Dictionary。 像Dictionary<string, List<string>>
。
如果“詞典”中沒有元素,請為該鍵創建一個新列表並添加到該列表中。 否則,只需將新值添加到現有列表中。
創建一個類,並將該類存儲在集合中。
class Search
{
public string Name { get; set; }
public List<string> State { get; set; }
public string Company { get; set; }
}
然后,每次搜索可以有多個狀態。 將此實例添加到List並離開。
您應該使用List<KeyValuePair<string, string>>
我會使用Dictionary<string, HashSet<string>>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.