C# 找到存储数据的正确方法

C# 找到存储数据的正确方法,c#,asp.net,.net,razor,webmatrix,C#,Asp.net,.net,Razor,Webmatrix,我曾计划使用字典或分类列表来完成这项工作,但随着项目的发展,我不知道该怎么做 我的网站将从数据库查询中加载一组结果,我需要能够将这些结果存储在某个地方 结果如下所示: 下面是我存储的内容: Result #1 (int) > Name > Value > Title > Value > Message > Value > Date > Value

我曾计划使用字典或分类列表来完成这项工作,但随着项目的发展,我不知道该怎么做

我的网站将从数据库查询中加载一组结果,我需要能够将这些结果存储在某个地方

结果如下所示:

下面是我存储的内容:

Result #1 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #2 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #3 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value

Result #4 (int) > Name > Value
                > Title > Value
                > Message > Value
                > Date > Value
                > Email > Value
。。。等等我主要担心的是,大多数字典和列表以及排序/链接列表不能有重复的键或值。所以我不能使用它们,因为每个结果都有相同的键名,如名称、标题、消息等。值可能不同,尽管许多值(如名称和日期)和其他值都是重复的。所以我有点纠结于不知道选择哪种字典/列表,哪种允许重复的键/名称,也不知道如何让“一对多”的关系继续下去,这样我才能正确地存储这些结果


有人能帮我解决这个问题的最佳方法吗?

每个结果的键看起来都是一样的-这意味着您应该将它们封装到一个单独的类中(例如“MailMessage”或其他任何类型)。然后,您只需拥有一个
字典
——或者甚至是一个这些结果的列表,如果这些键真的是零或者是最低的一个,那么每个结果都会增加一个

然后,您可能需要编写一些代码,通过适当的错误检查(例如未知属性名称、同一消息的重复属性等),从收到的数据库结果中组装该集合


当然,这是假设您提供给我们的数据确实具有代表性。

每个结果的键看起来都是一样的-这意味着您应该将它们封装到一个单独的类中(例如“MailMessage”或其他任何类型)。然后,您只需拥有一个
字典
——或者甚至是一个这些结果的列表,如果这些键真的是零或者是最低的一个,那么每个结果都会增加一个

然后,您可能需要编写一些代码,通过适当的错误检查(例如未知属性名称、同一消息的重复属性等),从收到的数据库结果中组装该集合


当然,这是假设您提供的数据确实具有代表性。

您不需要创建这样的类吗

public class Result
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Title{ get; set; }
    public string Message { get; set; }
    public DateTime Date { get; set; }
    public string Email { get; set; }
}

然后将您的DB结果映射到类似于
IList
,或关闭Id属性的
IDictionary
之类的对象?

您不需要创建这样的类吗

public class Result
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Title{ get; set; }
    public string Message { get; set; }
    public DateTime Date { get; set; }
    public string Email { get; set; }
}

然后将您的DB结果映射到类似于
IList
,或关闭Id属性的
IDictionary

看起来您只需要生成(使用实体框架之类的工具或手动)一些类来存储对象

然后,您可以轻松地维护对象的集合


您还可以使用存储库模式googleit。

看起来您只需要生成(使用实体框架之类的工具或手动)一些类来存储对象

然后,您可以轻松地维护对象的集合

您还可以使用存储库模式googleit。

创建一个结构(因为您只想存储值,不需要方法),并将它们存储在通用列表中

示例代码:

List list = new List();

list.Add(new MyStruct(10));
list.Add(new MyStruct(20));
创建一个结构(因为您只想存储值,不需要方法)并将它们存储在泛型列表中

示例代码:

List list = new List();

list.Add(new MyStruct(10));
list.Add(new MyStruct(20));