【问题标题】:How do I convert List<Class> to String?如何将 List<Class> 转换为字符串?
【发布时间】:2013-04-11 10:02:33
【问题描述】:

我有一个列表,我想把它转换成字符串。包括我已添加到列表中的所有 de 字符串和数据。

这是我的课

public class MyClass
{
    public Boolean success { get; set; }
    public String msg { get; set; }

}

那我这样声明:

List<MyClass> list = addDataToList("Passwd", "UserID");

那么,如何将该列表转换为字符串?

感谢您的帮助。

【问题讨论】:

  • 你期待什么结果?使用string.JoinEnumerable.Select 可能有一个简单的解决方案,但是如果您不告诉我们转换为字符串应该返回什么,就很难给出一个好的答案。

标签: c# string list


【解决方案1】:

如果你想连接列表中的所有msg,那么你可以使用string.Join

string str = string.Join(",", list.Select(r=> r.msg));

【讨论】:

    【解决方案2】:

    这是convert List&lt;Class&gt; to String的方法,

    我也将路径附加到 convert the converted String back to List

    .

    MyClass 类:

    public class MyClass
    {
        public Boolean success { get; set; }
        public String msg { get; set; }
    
        // class to string
        public override string ToString()
        {
            return success.ToString() + "," + msg;
        }
    
        public MyClass(){}
    
        // string to class
        public MyClass(string myclassTostring)
        {
            string[] props = myclassTostring.Split(',');
            success = Convert.ToBoolean(props[0]);
            msg = props[1];
        }
    
    }
    

    转换方式:

    ///  Produce a List ///
    List<MyClass> myclassList = 
        new List<MyClass>()
        {
            new MyClass(){success = true, msg = "1suc"},
            new MyClass(){success = false, msg = "2fail"},
            new MyClass(){success = true, msg = "3suc"},
            new MyClass(){success = true, msg = "4suc"},
            new MyClass(){success = false, msg = "5fail"},
        };
    
    ///  List Convert To String ///
    string myclassListToString =
        String.Join(";", myclassList.Select(o => o.ToString()));
    
    Console.WriteLine(myclassListToString);
    
    
    ///  String Convert Back To List ///
    string[] myclassToStrings = myclassListToString.Split(';');
    List<MyClass> convertBackList =
        myclassToStrings.
            Select(myclassTostring => new MyClass(myclassTostring)).ToList();
    

    编辑:

    几个月后我接触C# ASP.NET WebAPI,发现JSON格式在各种api中经常使用,

    而JSON是一种将数据转为字符串再转回数据的强大便捷方式,它可以将任何你能想到的对象、数组、类自动转为字符串并自动转回。

    关键字是JSON Serialize Deserialize,google一下,可以找到很多现成的包。

    我知道其中一个很有名的是NewtonSoft JSON,微软可能也有自己的JOSN进程库。

    例如:

        public static string ToJSON(this object obj)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                return serializer.Serialize(obj);
            }
            catch (Exception ex)
            {
                return "";
            }
        }
    

    如果你安装了 Nuget Package NewtonSoftJson,你可以使用

    public static string ToJSON(object obj)
    {
        return JsonConvert.SerializeObject(obj);    
    }
    

    【讨论】:

      【解决方案3】:
      public class MyClass
      {
         public Boolean success { get; set; }
         public String msg { get; set; }
      
         public override string ToString()
         {
           // return Whatever formalism of strings, e.g.
           return success? "Yeah":"Sorry" + msg;
         }
      }
      

      【讨论】:

        【解决方案4】:

        你可以(没有 IDE):

        List<MyClass> list;
        
        var res = from a in list
                  select String.Format("lala: {0} lili:{1}",a.success, a.msg);
        

        或者你可以:

        StringBuilder builder = new StringBuilder ();
        
        foreach (a in list)
        {
            builder.AppendFormat("lala: {0} lili:{1}\n",a.success, a.msg);
        }
        

        关于第二种可能性,如果您需要格式化,我认为我的建议会稍微快一些,但 Habib 的绝对更酷......

        【讨论】:

          【解决方案5】:

          试试这个

          for (int i = 0; i < list.Count; i++)
          {
            var a = list[i];
            Console.WriteLine(builder.AppendFormat("lala: {0} lili:{1}\n", a.success, a.msg));
          }
          

          【讨论】:

            猜你喜欢
            • 2019-06-05
            • 1970-01-01
            • 1970-01-01
            • 2021-10-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-08-05
            • 1970-01-01
            相关资源
            最近更新 更多