Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于打印列表的问题<;T>;筛选_C#_List_Console.writeline - Fatal编程技术网

C# 关于打印列表的问题<;T>;筛选

C# 关于打印列表的问题<;T>;筛选,c#,list,console.writeline,C#,List,Console.writeline,关于列表的问题 当我有“List msg”和图片中的值时: 我只得到PlugwiseLib.BLL.BC.PlugwiseMessage作为输出 但是如何在屏幕上看到\u消息、\u所有者和\u type中的值呢? 或者消息、所有者和类型的值 有人能给我解释一下区别吗?您的列表中有一组PlugwiseLib.BLL.BC.PlugwiseMessage对象。消息、所有者和类型是对象的属性。_message、_owner和_type变量是属性公开的支持字段 在执行控制台输出时,您正在对Plugwi

关于列表的问题

当我有
“List msg”
和图片中的值时:

我只得到PlugwiseLib.BLL.BC.PlugwiseMessage作为输出

但是如何在屏幕上看到
\u消息、\u所有者和\u type
中的值呢? 或者
消息、所有者和类型的值


有人能给我解释一下区别吗?

您的列表中有一组
PlugwiseLib.BLL.BC.PlugwiseMessage
对象。消息、所有者和类型是对象的属性。_message、_owner和_type变量是属性公开的支持字段

在执行控制台输出时,您正在对
PlugwiseMessage
对象调用
.ToString()
ToString()
的默认行为是打印对象的名称。如果要显示属性,则需要添加几行

Console.WriteLine(msg[i].Message);
Console.WriteLine(msg[i].Owner);
Console.WriteLine(msg[i].Type);

您的列表包含
PlugwiseLib.BLL.BC.PlugwiseMessage
对象的集合。消息、所有者和类型是对象的属性。_message、_owner和_type变量是属性公开的支持字段

在执行控制台输出时,您正在对
PlugwiseMessage
对象调用
.ToString()
ToString()
的默认行为是打印对象的名称。如果要显示属性,则需要添加几行

Console.WriteLine(msg[i].Message);
Console.WriteLine(msg[i].Owner);
Console.WriteLine(msg[i].Type);

在PlugWiseMessage类型中覆盖ToString方法

public override string ToString()
        {
            return String.Format("Owner {0}, Message {1}, Type {2}", this.Owner, this.Message, this.Type);
        }

在PlugWiseMessage类型中覆盖ToString方法

public override string ToString()
        {
            return String.Format("Owner {0}, Message {1}, Type {2}", this.Owner, this.Message, this.Type);
        }

问题是您打印的是对象本身,而不是属性,因此它使用默认的ToString()方法返回对象的类型名称

有两种选择之一。您可以重写PluginwiseMessage类中的ToString()方法,以返回包含所需信息的格式化字符串,或者如果您无权访问该信息,则可以执行以下操作:

foreach(PluginwiseMessage message in msg)
{
    Console.WriteLine("{0} {1} {2}", message.Message, message.Owner, message.Type);
    Console.Read();
}

您可以轻松地重新排列正在打印的参数并向输出中添加更多文本,但这只会输出消息、所有者和类型,它们之间用空格分隔。

问题在于您打印的是对象本身,而不是属性,因此它使用默认的ToString()方法返回对象的类型名称

有两种选择之一。您可以重写PluginwiseMessage类中的ToString()方法,以返回包含所需信息的格式化字符串,或者如果您无权访问该信息,则可以执行以下操作:

foreach(PluginwiseMessage message in msg)
{
    Console.WriteLine("{0} {1} {2}", message.Message, message.Owner, message.Type);
    Console.Read();
}

您可以轻松地重新排列正在打印的参数,并向输出中添加更多文本,但这只会输出消息、所有者和类型,并用空格分隔。

您的列表包含PlugwiseMessage对象,您可以告诉Console将它们写下来。为此,PlugwiseMessage实例必须转换为字符串。ToString()用于执行此操作,默认实现只是转储类型的名称。这就是你观察到的


如果可能,您应该重写ToString方法并根据需要进行调整。如果不可能,您必须自己转储这些值。这意味着您必须传递msg[i].Messasge,msg[i].Owner。。。要写入线()。

您的列表包含PlugwiseMessage对象,您可以告诉Console将它们写下来。为此,PlugwiseMessage实例必须转换为字符串。ToString()用于执行此操作,默认实现只是转储类型的名称。这就是你观察到的

如果可能,您应该重写ToString方法并根据需要进行调整。如果不可能,您必须自己转储这些值。这意味着您必须传递msg[i].Messasge,msg[i].Owner。。。写入线()