我列出了master
等对象列表。
如何覆盖List<List<Event>>
,以便每个内部列表都会显示在一行命令提示符中?
ToString()
答案 0 :(得分:3)
public override string ToString(List<List<Event>> events)
{
return string.Join(", ",
events.SelectMany((list) => list)
.Select((ev) => ev.ToString()));
}
.SelectMany()
Event
转换为重新使用.ToString()
修改1
鉴于基本方法签名为string ToString()
而没有任何参数,您可能需要引用类中的字段或属性,而不是定义单独的string ToString(List<List<Event>> events)
。
public class SO
{
List<List<Event>> events;
public override string ToString()
{
return string.Join(", ",
events.SelectMany((list) => list)
.Select((ev) => ev.ToString()));
}
}
答案 1 :(得分:1)
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();
}
这样的东西?我不知道您的事件字符串表示,您可能想要更改它。
答案 2 :(得分:0)
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();
}