簡體   English   中英

我應該使用什么樣的數據結構?

[英]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.

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