类 的结构包含要存储在字典中的实例化 类 的列表
Structure for Classes containing Lists of Instantiated classes to be stored in Dictionary
对于我的示例 class 要存储的是:
class Race
{
public string Name { get; set; }
public DateTime Date { get; set; }
public List<Competitor> Competitors = new List<Competitor>();
}
class Competitor
{
public string Name { get; set; }
public List<Stats> SomeData = new List<Stats>():
}
class Stats
{
//Other Properties Etc
}
它们将存储在:
class Events : Dictionary<string, List<Race>>
{
public Events()
: base()
{
}
}
我用另一个 class :
填充词典
class GenerateEventsData
{
public Events newEvents = new Events();
public GenerateEventsData()
{
fillEvents();
}
private void fillEvents()
{
//Method to fill events.
}
}
我感觉好像我已经到了 class 的列表被堆叠起来并且我的结构不正确的阶段。
我计划最终将数据序列化到磁盘并在以后重新使用,但这超出了这个问题的范围。但是,如果 classes 结构不合理,我想我可能会遇到问题。
提前致谢。
您可以使用通用容器:
public class ListDictionary<T> : Dictionary<string,List<T>>
{
public ListDictionary():base(){}
public void AddItem(string key, T value)
{
if(ContainsKey(key))
this[key].Add(value);
else
Add(key,new List<T>{value});
}
//similar for remove and get
}
另请查看存储库模式。
对于我的示例 class 要存储的是:
class Race
{
public string Name { get; set; }
public DateTime Date { get; set; }
public List<Competitor> Competitors = new List<Competitor>();
}
class Competitor
{
public string Name { get; set; }
public List<Stats> SomeData = new List<Stats>():
}
class Stats
{
//Other Properties Etc
}
它们将存储在:
class Events : Dictionary<string, List<Race>>
{
public Events()
: base()
{
}
}
我用另一个 class :
填充词典class GenerateEventsData
{
public Events newEvents = new Events();
public GenerateEventsData()
{
fillEvents();
}
private void fillEvents()
{
//Method to fill events.
}
}
我感觉好像我已经到了 class 的列表被堆叠起来并且我的结构不正确的阶段。
我计划最终将数据序列化到磁盘并在以后重新使用,但这超出了这个问题的范围。但是,如果 classes 结构不合理,我想我可能会遇到问题。 提前致谢。
您可以使用通用容器:
public class ListDictionary<T> : Dictionary<string,List<T>>
{
public ListDictionary():base(){}
public void AddItem(string key, T value)
{
if(ContainsKey(key))
this[key].Add(value);
else
Add(key,new List<T>{value});
}
//similar for remove and get
}
另请查看存储库模式。