C#类似list<map>,如何循环构造?

数据库:名称编号父编号1年级1NULL2年级2NULL1班312班413班524班62需要构造的为1年级1班2班2年级3班4班... 数据库:
名称 编号 父编号
1年级 1 NULL
2年级 2 NULL
1班 3 1
2班 4 1
3班 5 2
4班 6 2
需要构造的为
1年级
1班
2班
2年级
3班
4班
展开
 我来答
仙戈雅3n
推荐于2018-05-15 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:879万
展开全部
  public class MultMap<V>
    {
        IDictionary<string, List<V>> dictionary = new Dictionary<string, List<V>>();
        public MultMap() { }

        public void Add(string key, V item)
        {
            List<V> list;
            if (this.dictionary.TryGetValue(key,out list))
            {
                list.Add(item);
            }
            else
            {
                list = new List<V>();
                list.Add(item);
                this.dictionary[key] = list;
            }
        }

        public IEnumerable<string> Keys
        {
            get { return this.dictionary.Keys; }
        }

        public List<V> this[string key]
        {
            get
            {
                List<V> list;
                if (!this.dictionary.TryGetValue(key,out list))
                {
                    list = new List<V>();
                    this.dictionary[key] = list;
                }

                return list;
            }
        }
    }
    
    // 测试
    static void Main(string[] args)
        {
            MultMap<string> map = new MultMap<string>();
            // 构造集合映射
            map.Add("1年级", "1班");
            map.Add("1年级", "2班");

            map.Add("2年级", "3班");
            map.Add("2年级", "4班");

            foreach (var key in map.Keys)
            {
                Console.WriteLine(key);
                foreach (var item in map[key])
                {
                    Console.WriteLine("\t"+item);
                }
            }
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式