我在列表中有一个列表层次结构,在最底部我正在指定一个十进制值。我需要根据层次结构中位于其上方的列表的组合来分配此值。特定列表的每个元素都是Enum值,因此一个组合可以是Trees,Buildings,BuildingNumber。还有另一棵树,建筑物,建筑物价格。为这些组合分配值的最佳方法是什么?
我从分配的值来自任意一个类。然后,我需要对其中一些值进行一些计算,以便在特定组合中分配新值。
public class Hierarchy1
{
public List<Hierarchy2> NextList;
public Hierarchy1Enum EnumValue;
}
public class Hierarchy2
{
public List<Hierarchy3> NextList;
public Hierarchy2Enum EnumValue;
}
public class Hierarchy3
{
public decimal Value;
public Hierarchy3Enum EnumValue;
}
这样的事情。 Enums每个都有5-10个值,因此有很多组合。
Hierarchy1将包含Hierarchy2的列表。如果Hierarchy2Enum中有10个值,则该List中将有10个元素(因此每个枚举基本上为1个元素)。
答案 0 :(得分:0)
你的意思是这样吗?
static void Main(string[] args)
{
var list = new List<Hierarchy1>();
foreach (Hierarchy1Enum enum1 in Enum.GetValues(typeof(Hierarchy1Enum)))
{
var item1 = new Hierarchy1();
list.Add(item1);
item1.EnumValue = enum1;
item1.NextList = new List<Hierarchy2>();
foreach (Hierarchy2Enum enum2 in Enum.GetValues(typeof(Hierarchy2Enum)))
{
var item2 = new Hierarchy2();
item1.NextList.Add(item2);
item2.EnumValue = enum2;
item2.NextList = new List<Hierarchy3>();
foreach (Hierarchy3Enum enum3 in Enum.GetValues(typeof(Hierarchy3Enum)))
{
var item3 = new Hierarchy3();
item2.NextList.Add(item3);
item3.EnumValue = enum3;
item3.Value = GetValue(enum1, enum2, enum3);
}
}
}
}
private static decimal GetValue(Hierarchy1Enum enum1, Hierarchy2Enum enum2, Hierarchy3Enum enum3)
{
return // Calculate your value from enum1, enum2 and enum3
}