简体   繁体   English

我如何转换List <Class> 字符串?

[英]How do I convert List<Class> to String?

I've got an List and I want to convert it into string. 我有一个List,我想把它转换成字符串。 Including all de strings and data that I've been added to my list. 包括我已添加到列表中的所有de字符串和数据。

This is my class 这是我的班级

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

}

Then I declare it in that way: 然后我以这种方式宣布它:

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

So, how can I convert that list to String? 那么,我该如何将该列表转换为String?

Thanks for any help. 谢谢你的帮助。

如果要连接列表中的所有msg ,则可以使用string.Join

string str = string.Join(",", list.Select(r=> r.msg));
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;
   }
}

you could (no IDE): 你可以(没有IDE):

List<MyClass> list;

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

or you could: 或者你可以:

StringBuilder builder = new StringBuilder ();

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

regarding second possibility, If you need formatting, i think my suggestion would be slightly faster, but Habib's one is definitely cooler... 关于第二种可能性,如果你需要格式化,我认为我的建议会稍快一些,但是Habib的那个肯定更酷......

Here's a way to convert List<Class> to String , 这是一种convert List<Class> to String

and I append the way to convert the converted String back to List , too. 我也添加了convert the converted String back to List

.

The MyClass class : 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];
    }

}

The convert way: 转换方式:

///  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();

Edit: 编辑:

Few months later I'm touching C# ASP.NET WebAPI and I found that the JSON format is frequently used in all kinds of api, 几个月后,我正在接触C# ASP.NET WebAPI ,我发现JSON格式经常用于各种api,

and JSON is an powerful convenient way to turn data to string and turn back to data, it can auto turn any kind of object, array, class you can think to string, and auto turn back. 和JSON是一种将数据转换为字符串并返回数据的强大便捷方式,它可以自动转换任何类型的对象,数组,类,您可以认为是字符串,并自动返回。

The Keyword is JSON Serialize Deserialize , google it and you can find many ready-made package. 关键字是JSON Serialize Deserialize ,谷歌它,你可以找到许多现成的包。

And I know one of famous of it is NewtonSoft JSON , and Microsoft may have its own library for JOSN process, too. 我知道其中一个着名的是NewtonSoft JSON ,微软也可能拥有自己的JOSN流程库。

For example something like: 例如:

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

and if you install Nuget Package NewtonSoftJson , you can use 如果您安装Nuget Package NewtonSoftJson ,您可以使用

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

Try this 尝试这个

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));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM