我应该使用什么样的数据结构

本文关键字:数据结构 什么样 我应该 | 更新日期: 2023-09-27 17:58:47

我有一个mysql表,它有一个唯一ID的条目,然后是3个属性。

我在ListBox中显示ID,其他信息在页面的其他部分。它经常被重复使用,以至于我不想每次引用它时都进行另一个查询。我的问题是:我应该使用什么样的数据结构来保存行数据?

二维数组是最好的选择吗?如果是这样的话,那么使用键为ID、值为对包含该行所有值的数组的引用的哈希表是不是很糟糕?

我使用的是.NET 4,并使用C#进行编码。

我应该使用什么样的数据结构

模型看起来适合表示一行:

public class Foo
{
    public string Id { get; set; }
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
    public string Prop3 { get; set; }
}

和CCD_ 1来表示您的SQL表。当然,您将拥有一个带有方法的存储库,允许您在给定Id或其他条件的情况下获取单个模型,并获取所有模型。然后将此模型绑定到您的GUI。

我会将它们存储在一个包含DataTable的DataSet中。如果出现这种情况,将返回多个数据表并将其存储在一个数据集中。更多信息:http://msdn.microsoft.com/en-us/library/ms978448.aspx#bdadotnetdata4_topic2c

我不喜欢设置哈希表的方式,因为值数组可能有点草率。如果你想以这种方式绑定,我会把更多的目标放在Hashtable上。然而,特别的是,您不必达到这个级别,因为您可以设置任何可以使用IEnumerable和bind的对象类型。示例:

List<ObjectType> myList = new List<ObjectType>();

当您绑定到对象上的一个属性,然后根据过滤器(LINQ to Entities?)进行显示时,您可以根据用户的过滤器重用数据。

一个可能的警告是,要注意您在web服务器端保存的数据的大小,尤其是在"每次会话"类型的基础上加载的情况下,因为您最终可能会消耗大量内存来处理所有可能的用户选择。哎哟

最好的选择是从中创建一个业务对象类,并将其作为List传递。

如果您只需要小型应用程序中的原始数据,也可以使用内置的DataTable类。