c#对象转换为字符串,以文本格式显示

本文关键字:文本 格式 显示 字符串 对象 转换 | 更新日期: 2023-09-27 18:19:22

我有下一个对象/列表"ListaDatos",我喜欢把它作为清晰的字符串(可视化/通过邮件等发送)

public List<Datos> ListaDatos = new List<Datos>();
public class Datos
{
    public string Numero;
    public string Alias;
    public string URLConsumo;
    //-- Consumos ----------------------------- 
    public List<Consumo> Consumos = new List<Consumo>();
    public string ConsumoTotal;
}
public class Consumo 
{
    public string Tipo;
    public string Subtipo;
    public string Concepto;
    public string Cantidad;
    public string Importe;
    public string Total;
}

什么是最简单的方法来"渲染"这个对象为文本,以获得一个字符串变量像这样:

DATOS
 Numero     : 10
 Alias      : "aaaaa"
 urlConsumo : "www.aaaaaaaaaaaaa"
 Consumos
  Tipo      : "abc"
  SubTtipo  : "aaa"
  ...
DATOS
 Numero     : 10
 Alias      : "aaaaa"
 urlConsumo : "www.aaaaaaaaaaaaa"
 Consumos
  Tipo      : "abc"
  SubTtipo  : "aaa"
  ...

c#对象转换为字符串,以文本格式显示

Consumo类实现ToString()方法,然后为Consumo类使用ToString()方法为Datos类实现ToString()方法。

您必须重写"ToString"默认函数,如:

public class Consumo 
{
    public string Tipo;
    public string Subtipo;
    public string Concepto;
    public string Cantidad;
    public string Importe;
    public string Total;
   public override string ToString()
   {
   return Tipo + " 'n " + Subtipo + " 'n "... etc;
   }
}

请参考c#开发指南中的转义序列部分…http://msdn.microsoft.com/en-us/library/h21280bw.aspx或http://msdn.microsoft.com/en-us/netframework/aa569608

当字符串表示用于可视化和类似目的时,最好的方法是覆盖ToString方法。从嵌套最多的类型开始,然后沿着层次结构往上走。使用嵌套对象的ToString来实现外部对象的ToString。一个非常有用的格式化对象集合的方法是string.Join():它允许你在不显式循环的情况下格式化集合。