3

我正在尝试使用 WriteLine 在控制台应用程序中显示列表的内容。我正在使用以下代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using TestCLient.ClientTransactionsServiceReference;

    namespace TestCLient
    {
        class Program
        {
            static void Main(string[] args)
            {
                ClientTransactionsServiceClient client = new ClientTransactionsServiceClient();
                List<ClientTransactions> ct = client.GetClientTransactions("9999");
                ct.ForEach(i => Console.Write(i));
                Console.Read();
            }
         }
    }

我得到以下输出:

输出截图

当我调试时,我的列表 (ct) 显示它包含我想要显示的字段。请参阅以下屏幕截图:

调试截图

我搜索了许多来源,包括 Stack 以获取我用来编写列表的代码行。我是编程新手,非常感谢您的帮助。

谢谢

4

4 回答 4

4

Console.Write隐式调用ToString()您尝试在控制台中打印的对象。因为您的类型不会覆盖返回的文本,所以是类定义ToString()的默认实现的结果(所有类型都从该类派生)。ToString()Object

而不是i作为参数传递给Console.Writepass i.NameOfThePropertyYouWantToOutput

于 2013-04-22T16:43:06.130 回答
1

您可以打印出您需要的每个属性。或者更好的是,覆盖该ToString()方法并像以下代码一样调用它:

ct.ForEach(i => Console.Write(i.ToString()));

于 2013-04-22T16:43:29.440 回答
0

由于您正在输出 的实例ClientTransactions,因此您需要指定如何在控制台上呈现信息。您可以输出此实例的一个或多个属性,也可以覆盖该ToString()方法。

于 2013-04-22T16:42:48.597 回答
-1

您尝试将对象解析为字符串。

如果要在控制台中正确显示对象,则需要显示客户端对象的成员。

ct.ForEach(i => Console.Write(i.Name )); // exemple
            Console.Read(); 
于 2013-04-22T16:46:11.690 回答