我原本计划使用Dictionary或SortedList,但随着项目的规划进展,我不知道该怎么办。
我的网站会从数据库查询中加载一堆结果,我需要能够将这些结果存储在某个地方。
结果如下:
所以,这就是我要存储的内容:
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
......等等。我主要担心的是,大多数字典和列表以及排序/链接列表都没有重复的键或值。所以我不能使用它们,因为每个Result都有相同的键名,如Name,Title,Message等。值可能不同,尽管许多值如Name和Date以及其他值都是dupes 。所以我有点不知道不知道选择哪种词典/列表允许重复的键/名称和不知道如何让那些“一对多”关系事情发生,所以我可以正确存储这些结果。
有人可以帮助我解决这个问题的最佳方法吗?
答案 0 :(得分:2)
每个结果的键看起来都一样 - 这表明你应该将它们封装到一个单独的类中(例如“MailMessage”或其他任何意图)。然后你只需要Dictionary<int, MailMessage>
- 甚至列表这些结果,如果键真的是零或一个是最低的,每个结果增加一个。
然后,您可能需要从您收到的数据库结果中编写一些代码来汇编该集合,并进行适当的错误检查(例如,未知的属性名称,同一消息的重复属性等)。
当然,假设你给我们的数据真的具有代表性。
答案 1 :(得分:2)
您是否只需要创建这样的类?
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; }
}
然后将您的数据库结果映射到类似于IList<Result>
或{Id}属性的IDictionary<int, Result>
?
答案 2 :(得分:0)
看起来你只需要生成(使用像Entity Framework或手工工具)一些类来存储你的对象。
然后,您可以轻松维护对象的集合。
您也可以使用存储库模式,谷歌搜索。
答案 3 :(得分:0)
创建一个结构(因为你只想存储值,不需要任何方法)并将它们存储在通用列表中。
示例代码:
List list = new List();
list.Add(new MyStruct(10));
list.Add(new MyStruct(20));