当前位置: 首页 > 知识库问答 >
问题:

无法打印列表中的元素

米夕
2023-03-14
public class item
{
  public int x;  
  public string s;
  public item ()
  {}
}

然后在main方法中,我尝试创建一个列表并打印出其中的元素。

{
  item first=new item();
  first.x=5;
  first.s="Hello";
 
  item second =new item();
  second.x=6;
  second.s="world";

  List <item> myItem= new List <item> ();
  myItem.Add(first);
  myItem.Add(second);
  
  foreach (item element in myItem)
  {
    Console.WriteLine(element);
  }
}

没有语法错误,但当我尝试运行上面的代码时,终端不会返回任何内容。

共有3个答案

马欣荣
2023-03-14

请使用PascalCase来定义类和字段。

public class Item
{
    public string A { get; set; }
    public int X { get; set; }
}

WriteLine方法自动调用ToString方法将对象“转换”为字符串

如果要查看字段的值,则必须编写:

Console.WriteLine(“A: ” + item.A + “ X: “ + item.X);
// or w/ string interpolation
Console.WriteLine($”A: {item.A} X: {item.X}”);

// console output
A: ‘value of A’ X: ‘value of X’

您还可以覆盖'Item'类中的ToString方法。

public class Item
{
    public string A { get; set; }
    public int X { get; set; }

    public override string ToString()
    {
        return "A: " + A + " X: " + X;
    }
}

要在控制台上写入值,只需编写

Console.WriteLine(item);

// console output
A: ‘value of A’ X: ‘value of X’
牧信厚
2023-03-14

您遵循的方法可以改进。请参阅此-. NET中的Getter和Setter声明

并且您已将类中的变量定义为

int x;
string s;

和用作

first.x=5;
first.y="Hello"; // what is y here? It is not defined in your model class

在您的方法中,列表元素可以像这样打印(目前您的 item 类中的属性是私有的,您已经将它们设置为公开或查看 toString 方法@jhbonarius答案)

foreach (item element in myItem)
  {
    Console.WriteLine(element.x +" "+element.s);
  }
冯峻
2023-03-14

编译器不会神奇地知道如何将您的自定义类型转换为字符串。但是,每个类都派生自对象类,该类具有(虚拟)ToString方法。如果不覆盖,它将打印类名。您可以在项目类中自己覆盖它。例如。

public override string ToString()
{
    return "x: " + x + ", s: " + s;
}
 类似资料:
  • 我刚接触JasperReports,在解决一个问题时遇到了问题。 我有一份报告和一个字段,它是

  • 问题内容: 我正在尝试打印a的所有元素,但是它打印的是指针而不是值。 这是我的打印代码… 任何人都可以帮助我,为什么它没有体现出要素的价值。 问题答案: 这是有关打印出列表组件的一些示例: public class ListExample { } class Model { }

  • 问题内容: 我有一个清单清单: 我想要以下格式的输出: 我已经按照以下方式尝试过,但是输出的方式不是理想的: 输出: 在更改打印调用以代替使用时: 输出: 有任何想法吗? 问题答案: 遍历原始列表中的每个子列表,并在打印调用中使用以下命令将其解压缩: 默认情况下,分隔设置为,因此无需显式提供分隔。打印: 在您的方法中,您要遍历每个子列表中的每个元素,并分别进行打印。通过使用您在打印调用中 解压缩

  • 无法打印java中对象类型列表中的不同值。这是我当前的解析器代码,我正在检查重复值。 在下面的代码中,我试图从newList中获取唯一值。 XML-示例 下面是学生pojo类,同样有一个地址pojo类有addrress细节,公司类有学生列表

  • 问题内容: 我有一个元素列表,例如自然数。我想将它们打印在一行中,并用一个 空格 作为分隔符。但是我 不想 在列表的最后一个元素之后(或第一个元素之前) 留 一个空格。 在Python 2中,可以使用以下代码轻松完成此操作。该语句的执行(我必须承认,这是个谜),避免在换行符前打印多余的空格。 但是,在Python 3中,似乎(使用)该函数的等效代码在最后一个数字之后产生一个空格: 当然,我的问题有

  • 我在下面写的代码保存了进程在中拥有cpu时的时间戳。如果进程当时拥有CPU。例如,如果列表如下所示: 控制台的输出应该是这样的: 我怎么能这么做呢?这就是我迄今为止所做的