尝试使用WriteLine在控制台应用程序中显示列表的内容

时间:2013-04-22 16:38:27

标签: c# wcf

我正在尝试使用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();
            }
         }
    }

我得到以下输出:

Output Screenshot

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

Debug screenshot

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

谢谢

4 个答案:

答案 0 :(得分:4)

Console.Write隐含地在您尝试在控制台中打印的对象上调用ToString()。由于您的类型不会覆盖ToString(),因此返回的文本是ToString()类(所有类型派生自此类)定义的Object的默认实现的结果。

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

答案 1 :(得分:1)

您要么打印出您需要的每个属性..或者更好的是,覆盖ToString()方法并在以下代码中调用它:

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

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

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

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

ct.ForEach(i => Console.Write(i.Name )); // exemple
            Console.Read();