如何把一个字典:
   如:System.Collections.Generic.Dictionary<Rect, string> sticks   先转换为字符串类型,作为一个方法的参数传递进入,   然后在方法里再把传入的 string  类型反转回原来的 
               System.Collections.Generic.Dictionary<Rect, string> sticks 类型谢谢

解决方案 »

  1.   

    多余,直接传Dictionary不就行了,折腾啥
      

  2.   

    这样你得设计一种string的表达方式 得看Dictionary看懂直接传递Dictionary还是好些
      

  3.   

    为什么要传字符串。。传Dictionary 不可以吗
      

  4.   

    假设你的字符串不包括某种字符,比如换行符号。你可以枚举字典,得到每个项,并且用一个换行符连接。得到一个长字符串。然后再用split函数装入数组,最后再添加会字典,完成还原。
      

  5.   

    哎,这样做肯定是有目的的,如果能直接传directory,还来
      

  6.   

    看你的需求是序列化和反序列化了
    你看下这个名字空间下的内容
    System.Runtime.Serialization看能自己看明白或和你的需求不了,如果合你的要求在说怎么用吧
      

  7.   

    用序列化,不过序列化的产物是byte[],为了达到你的要求,再用Base64将byte[]转换成字符串,序列化过程用MemoryStream,无需额外文件操作。如下代码,完全可以讲任何支持序列化的对象(有SerializableAttribute或继承ISerializable接口的对象)转换成字符串,反之亦然。
            static void Main()
            {
                Dictionary<int, string> dic = new Dictionary<int, string>()
                {
                    {1,"dddd"},
                    {43,"dddsd"},
                    {53,"d"}
                };            string code = Convert.ToBase64String(Obj2Arr(dic));            Console.WriteLine("将Object转换成String");
                Console.WriteLine(code);
                Console.WriteLine();            Console.WriteLine("将String转换成Object");
                Dictionary<int, string> convertedDic = (Dictionary<int, string>)Arr2Obj(Convert.FromBase64String(code));
                foreach (KeyValuePair<int, string> pair in convertedDic)
                    Console.WriteLine(pair.Key + ":" + pair.Value);        }
            static byte[] Obj2Arr(Object obj)
            {
                if (obj == null)
                    return null;
                BinaryFormatter bf = new BinaryFormatter();
                MemoryStream ms = new MemoryStream();
                bf.Serialize(ms, obj);
                return ms.ToArray();
            }
            static Object Arr2Obj(byte[] bytes)
            {
                MemoryStream ms = new MemoryStream();
                BinaryFormatter bf = new BinaryFormatter();
                ms.Write(bytes, 0, bytes.Length);
                ms.Seek(0, SeekOrigin.Begin);
                Object obj = (Object)bf.Deserialize(ms);
                return obj;
            }
      

  8.   

    另外可以将对象序列化成XML,不过目前的XmlSerializer不支持IDictionary的XML序列化。解决方案有多种,参考下面的链接
    http://stackoverflow.com/questions/1124597/why-isnt-there-an-xml-serializable-dictionary-in-net
    http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx
      

  9.   

    json 如何。。
    的确是序列化问题。
    顶 13楼