【问题标题】:How to print (Console.WriteLine) the values from list array in .NET如何在 .NET 中打印(Console.WriteLine)列表数组中的值
【发布时间】:2015-01-11 13:47:30
【问题描述】:

我正在使用第 3 方 API 来提取一些数据。包装器保存在列表数组类型中。我已经设法提取数据,但现在我想在.NET 的控制台窗口中显示它。我认为只使用它就可以了:

Console.WriteLine(Obj.GetData(datapull));

但是,输出如下:

System.Collections.Generic.List`1[CompanyProduct.API.DataRequestItem]

我认为我可以使用 for each 循环,但我不知道该怎么做,而且它似乎过于复杂,因为我只有一个值可以提取!但根据 API 文档,我必须使用 List 数组作为包装器。

我还尝试将列表转换为字符串,如下所示:

string dataCombined = string.Join( ",", datapull);

这也不起作用,并打印了以下内容:

CompanyProduct.API.<name of class for data request>

任何人都可以帮助我或至少为我指明正确的方向。我以为我想做的事情很简单!!!

感谢您的帮助。

【问题讨论】:

  • datapull 的类型是什么,如果是数组或列表类型,项目类型是什么?
  • 抱歉,我该如何找到这个?? :(
  • 你在哪里定义datapull
  • List datapull = new List();
  • 你希望它打印什么?

标签: .net arrays list


【解决方案1】:

这取决于您要打印到控制台的对象的哪些信息以及该类是否已实现/覆盖ToString() 方法。当方法未实现时(正常情况),只有类型名称被写入控制台。 Console.WriteLine 使用 ToString() 打印出对象。

由于您使用的是第 3 方 API,并且您无法更改 ToString() 方法的实现,因此您需要使用某种 ObjectDumper,它会打印出一个对象及其所有属性和属性值。

ObjectDumper 使用指定格式,例如 XML、JSON 或自定义来创建对象的字符串表示。例如,在 c# 中对 ObjectDumper 的问题和回答可以找到 here。将您的对象打印到 xml 的方法如下所示(取自链接):

private static string ObjectToXml(object objectToDump)
{
 string xmlRepresentation;

 System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(objectToDump.GetType());
 using (System.IO.StringWriter sw = new System.IO.StringWriter())
 {
    try
    {
       xs.Serialize(sw, objectToDump);
       xmlRepresentation = sw.ToString();
    }
    catch (Exception ex)
    {
       xmlRepresentation = ex.ToString();
    }
 }

 return xmlRepresentation;
 }

【讨论】:

  • 如何使用 ObjectDumper?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
相关资源
最近更新 更多