私はList<List<Event>>
のようなオブジェクトのリストを持っています。オブジェクトリストのリストを文字列に変換する
ToString()
を無効にすると、各内部リストがコマンドプロンプトの1行に表示されます。
public override string ToString(List<List<Event>>)
{
return ?
}
私はList<List<Event>>
のようなオブジェクトのリストを持っています。オブジェクトリストのリストを文字列に変換する
ToString()
を無効にすると、各内部リストがコマンドプロンプトの1行に表示されます。
public override string ToString(List<List<Event>>)
{
return ?
}
public override string ToString(List<List<Event>> lle)
{
StringBuilder res=new Stringbuilder(your_guess_of_lenght_here);
foreach(List<Event> le in lle){
foreach(Event e in le){
res.Append(e+"any_separator_of_elements");
}
res.Append("\n");
}
return res.ToString();
}
このような何か?私はあなたのイベント文字列の表現を知らない、あなたはそれを変更することができます。
'res.Append(" \ n ");'を 'res.AppendLine();' – Tdorno
または 'Environment.NewLine'(これは実際には' AppendLine() 'によって貼り付けられます) – Kartoffel
もしあれば'res'変数の値を推測しませんか? – Roboticist
public override string ToString(List<List<Event>> events)
{
return string.Join(", ",
events.SelectMany((list) => list)
.Select((ev) => ev.ToString()));
}
Event
は再使用して.ToString()
.SelectMany()
編集は、基本メソッドのシグネチャは、あなたはおそらく、あなたのクラスのフィールドまたはプロパティを参照すると、別string ToString(List<List<Event>> events)
を定義する必要がない任意のパラメータなしのstring ToString()
であることを考えます。
public class SO
{
List<List<Event>> events;
public override string ToString()
{
return string.Join(", ",
events.SelectMany((list) => list)
.Select((ev) => ev.ToString()));
}
}
public override string ToString(List<List<Event>> listOflistOfEvents)
{
StringBuilder result = new StringBuilder();
listOflistOfEvents.ForEach(delegate(List<Event> listOfEvents)
{
result.AppendLine();
listOfEvents.ForEach(events => result.Append(events + ","));
});
return result.ToString();
}
ないあなたはこれを使っているが、JSONやYAMLにして、それをシリアル化する価値があるかもしれないものを確認してください? –
@KevinSmith:そうは思わない。これらのイベントは、有限状態マシンに対応する一部の文字列です。私が必要とするのは、それらを印刷する方法だけです。シリアライゼーションはこの作業には非常に複雑です。 – Roboticist