簡體   English   中英

ASP.NET應該使用哪種類型的集合?

[英]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並離開。

通用列表(System.Collections.Generic)怎么樣?

例如,

string name;
List<string> states;
string company;

您可以在此處閱讀有關通用列表的信息

您應該使用List<KeyValuePair<string, string>>

我會使用Dictionary<string, HashSet<string>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM