public struct QueryForm
{
            private List<MenuInfo> menus;
            public List<MenuInfo> Menus
            {
                get
                {
                    if (menus == null)
                    {
                        menus = new List<MenuInfo>();
                    }
                    return menus;
                }
                set
                {
                    menus = value;
                }
            }
}
public static Dictionary<string, QueryForm> Query = new Dictionary<string, QueryForm>();
public static Dictionary<string, MenuInfo> Menus = new Dictionary<string, MenuInfo>();
//实现下面这个算法的时候添加
if (treeView1.SelectedNode != null)
                        {
                            string query = "Menu" + mecount.ToString();                            treeView1.SelectedNode.Text = "Menu" + mecount.ToString();
                            treeView1.SelectedNode.Tag = kongzhi.loMe(NodeInfo, ref mecount);
                            Menus.Add(query, (MenuInfo)treeView1.SelectedNode.Tag);                            if (treeView1.SelectedNode.Parent.Text.Substring(0, 9).Equals("QueryForm"))
                            { //这里无法添加到Query
                                
                                Query[treeView1.SelectedNode.Parent.Text].Menus.Add(Menus[query]);
                            }
                            Op.Clear();
                        }如何在Query里面添加一条menu

解决方案 »

  1.   

    代码好像没有太大的问题 有报错没有啊
    还有就是你在dictionary取出内容之前判断下存不存在啊
    存在了在取 不然会抛错的
      

  2.   

    好奇怪啊~运行的时候没报错,dictionary我在前面的函数里面添加了,在算法里面运行的时候已经存在,只是我添加menu之后Query[treeView1.SelectedNode.Parent.Text].Menus.Add(Menus[query]);
    ,发现dictionary里面没有menu的值
      

  3.   

    好奇怪啊~运行的时候没报错,dictionary我在前面的函数里面添加了,在算法里面运行的时候已经存在,只是我添加menu之后Query[treeView1.SelectedNode.Parent.Text].Menus.Add(Menus[query]);
    ,发现dictionary里面没有menu的值 
      

  4.   

    那就是一些非code的问题了 自己仔细debug代码 单步调试下吧
    这个也没人愿意慢慢给你debug代码的
    没有值 可能是每次都new了下 重新初始化了 也不一定把
      

  5.   

    Query[treeView1.SelectedNode.Parent.Text]中的key值已经有了么,没有就添加
    Query.Add(Key,Value)
      

  6.   


    快速监控了n次~,表示里面有key,还有value,主要是添加的时候,Query里面的List Menus的值添加不了
      

  7.   


    原来是我用了struct定义QuerForm,class定义可以直接用来引用,struct用get。set会重新调用另外一个QueryForm结构的menus,不会直接引用他,所以他不会添加。