2

リストがあり、それを文字列に変換したい。リストに追加されたすべての文字列とデータを含めます。

これは私のクラスです

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

}

次に、次のように宣言します。

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

では、そのリストを文字列に変換するにはどうすればよいでしょうか?

助けてくれてありがとう。

4

5 に答える 5

8

msgリスト内のすべてを連結したい場合は、次のように使用できますstring.Join

string str = string.Join(",", list.Select(r=> r.msg));
于 2013-04-11T10:05:24.640 に答える
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;
   }
}
于 2013-04-11T10:08:11.280 に答える
3

あなたはできます(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);
}

2番目の可能性については、フォーマットが必要な場合は、私の提案の方が少し速いと思いますが、Habibの提案の方が間違いなくクールです...

于 2013-04-11T10:09:28.163 に答える
3

方法は次のとおりconvert List<Class> 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で、ググれば既製のパッケージがたくさん見つかります。

そして、その有名なものの 1 つがNewtonSoft JSONであることを知っています。また、Microsoft も 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);    
}
于 2016-08-29T06:03:43.233 に答える