请帮忙用字典嵌套写代码,该如何解决
请帮忙用字典嵌套写代码

上面表中有三个字段,想分别设置为三个COMBOBOX来存入字段的不重复值
当我选中产地这个COMBOBOX是,有二个选项,即外资和国产
当我选中外资时,第二个COMBOBOX则只有外资品牌的选项
当我选中品牌中的某一项时,第三个COMBOBOX则只有这个品牌的类型
这三个COMBOBOX是联动的,想用字典嵌套的方法来做,却不会用。
请各位热心人帮忙写代码。
------解决思路----------------------
------解决思路----------------------
Dictionary<string, Dictionary<string, string>>
------解决思路----------------------
数据库balabala
reader = dbcommand.ExecuteReader()
While reader.Read()
combobox1.items.add(reader(0))
balabala
end while
然后在SelectedIndexChanged之类的事件改变其他几个combobox
------解决思路----------------------
两次GroupBy再分别ToDictionary
如果你的输入数据是
string[][] data = { { "外资", "大众", "A" }, { "外资", "大众", "A" }, ... }
var result = data.GroupBy(x => x[0]).ToDictionary(x => x.Key, x.GroupBy(y => y[1]).ToDictionary(y => y.ToList()));
上面表中有三个字段,想分别设置为三个COMBOBOX来存入字段的不重复值
当我选中产地这个COMBOBOX是,有二个选项,即外资和国产
当我选中外资时,第二个COMBOBOX则只有外资品牌的选项
当我选中品牌中的某一项时,第三个COMBOBOX则只有这个品牌的类型
这三个COMBOBOX是联动的,想用字典嵌套的方法来做,却不会用。
请各位热心人帮忙写代码。
------解决思路----------------------
class Program
{
static void Main(string[] args)
{
List<Car> car = new List<Car>();
car.Add(new Car() { parenttext = "0", text = "外资" });
car.Add(new Car() { parenttext = "0", text = "国产" });
car.Add(new Car() { parenttext = "外资", text = "大众" });
car.Add(new Car() { parenttext = "外资", text = "宝马" });
car.Add(new Car() { parenttext = "外资", text = "丰田" });
car.Add(new Car() { parenttext = "国产", text = "奇瑞" });
car.Add(new Car() { parenttext = "国产", text = "比亚迪" });
car.Add(new Car() { parenttext = "国产", text = "荣威" });
car.Add(new Car() { parenttext = "大众", text = "A" });
car.Add(new Car() { parenttext = "大众", text = "B" });
car.Add(new Car() { parenttext = "大众", text = "C" });
car.Add(new Car() { parenttext = "宝马", text = "A" });
car.Add(new Car() { parenttext = "宝马", text = "B" });
car.Add(new Car() { parenttext = "宝马", text = "C" });
car.Add(new Car() { parenttext = "丰田", text = "A" });
car.Add(new Car() { parenttext = "丰田", text = "B" });
car.Add(new Car() { parenttext = "丰田", text = "C" });
car.Add(new Car() { parenttext = "丰田", text = "D" });
car.Add(new Car() { parenttext = "丰田", text = "AB" });
car.Add(new Car() { parenttext = "丰田", text = "CD" });
car.Add(new Car() { parenttext = "丰田", text = "EF" });
car.Add(new Car() { parenttext = "奇瑞", text = "A1" });
car.Add(new Car() { parenttext = "奇瑞", text = "A2" });
car.Add(new Car() { parenttext = "奇瑞", text = "A3" });
car.Add(new Car() { parenttext = "比亚迪", text = "B1" });
car.Add(new Car() { parenttext = "比亚迪", text = "B2" });
car.Add(new Car() { parenttext = "比亚迪", text = "B3" });
car.Add(new Car() { parenttext = "比亚迪", text = "B4" });
car.Add(new Car() { parenttext = "荣威", text = "Q1" });
car.Add(new Car() { parenttext = "荣威", text = "Q2" });
car.Add(new Car() { parenttext = "荣威", text = "Q3" });
car.Add(new Car() { parenttext = "荣威", text = "Q4" });
car.Add(new Car() { parenttext = "荣威", text = "Q5" });
List<Car> car1 = car.Where(u => u.parenttext == "0").ToList();//第一个下拉框绑定数据
var car1Text = "国产";
List<Car> car2 = car.Where(u => u.parenttext == car1Text).ToList();//第二个下拉框绑定数据
var car2Text = "比亚迪";
List<Car> car3 = car.Where(u => u.parenttext == car2Text).ToList();
Console.WriteLine(car1.Count);
Console.WriteLine(car2.Count);
Console.WriteLine(car3.Count);
Console.ReadLine();
}
class Car
{
public string parenttext { get; set; }
public string text { get; set; }
}
}
------解决思路----------------------
Dictionary<string, Dictionary<string, string>>
------解决思路----------------------
数据库balabala
reader = dbcommand.ExecuteReader()
While reader.Read()
combobox1.items.add(reader(0))
balabala
end while
然后在SelectedIndexChanged之类的事件改变其他几个combobox
------解决思路----------------------
两次GroupBy再分别ToDictionary
如果你的输入数据是
string[][] data = { { "外资", "大众", "A" }, { "外资", "大众", "A" }, ... }
var result = data.GroupBy(x => x[0]).ToDictionary(x => x.Key, x.GroupBy(y => y[1]).ToDictionary(y => y.ToList()));