[英]What kind of data structure should I use?
我有一個 mysql 表,其中包含具有唯一 ID 的條目,然后是 3 個屬性。
我在 ListBox 中顯示 ID,其他信息出現在我頁面的其他部分。 它經常被重復使用,以至於我不想每次需要引用它時都進行另一個查詢。 我的問題是:我應該使用什么樣的數據結構來保存行數據?
二維數組是最佳選擇嗎? 如果是這樣,使用鍵是 ID 並且值是對包含該行所有值的數組的引用的 Hashtable 是不是很糟糕?
我正在使用 .NET 4,並在 C# 中進行編碼。
model 看起來適合表示一行:
public class Foo
{
public string Id { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
}
和IEnumerable<Foo>
代表您的 SQL 表。 然后,您當然會有一個存儲庫,其中包含允許您獲取單個 model 的方法(給定它的Id
或其他標准)並獲取所有模型。 然后將此 model 綁定到您的 GUI。
最好的選擇是從中創建一個業務 object class 並將其作為列表傳遞。
如果您只需要小應用程序中的原始數據,也可以使用內置的 DataTable class。
我會將它們存儲在包含 DataTable 的 DataSet 中。 如果出現這種情況,將返回多個數據表並將其存儲在一個數據集中。 更多信息: http://msdn.microsoft.com/en-us/library/ms978448.aspx#bdadotnetdata4_topic2c
我不喜歡您設置 Hashtable 的方式,因為值數組可能有點草率。 如果您想以這種方式綁定,我會更多地針對 Hashtable。 但是,從技術上講,您不必將 go 設置到此級別,因為您可以設置任何可以使用 IEnumerable 和綁定的 object 類型。 例子:
List<ObjectType> myList = new List<ObjectType>();
當您綁定到 object 上的一個屬性,然后根據過濾器(LINQ to Entities?)顯示時,您可以根據用戶的過濾器重用數據。
一個可能的警告是注意您在 web 服務器端持有的數據的大小,特別是如果它是基於“每個會話”類型加載的,因為您最終可能會消耗大量 memory 來處理所有可能的用戶選擇。 哎喲!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.