c# - 从列表中打印出对象元素

标签 c# console-application

我正在尝试使用 foreach 打印列表中的对象元素在主作用域中循环,但唯一打印出来的是:

ConsoleApplication1.WorldMap

这里出了什么问题以及如何让它打印出实际的元素?

using ConsoleApplication1;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
     class WorldMap
     {

        private string higher;
        private string lower;

        public worldMap()
        {
        }

        public WorldMap(string higher, string lower)
        {
           this.higher = higher;
           this.lower = lower;
        } 

        public string Higher
        {
            get { return higher; }
            set { higher = value; }
        }

        public string Lower
        {
            get { return Lower; }
            set { Lower = value; }
        }
    }   
  class Program
  {

    static void Main(string[] args)
    {

        WorldMap map = new WorldMap();

        List<WorldMap> mapList = new List<WorldMap>();
        mapList.Add(new WorldMap(map.Lower, map.Higher));

        Console.WriteLine("\tInsert highest point:");
        map.Highest= Console.ReadLine();
        Console.WriteLine("\tInsert lowest point");
        map.Lowest= Console.ReadLine();


        using (StreamWriter writer = new StreamWriter(@"C:\freq.txt", true))
        { 
            writer.WriteLine(map.Lower + map.Higher); 
        }

        foreach (object view in mapList)
        {
            Console.WriteLine(view);
        }
      }
   }
}

最佳答案

因为您没有覆盖 ToString方法WorldMap所以Console.WriteLine(view)返回类的名称 WorldMap 。您可以覆盖 ToString类中的方法或调用 foreach 中的属性循环但不要忘记你应该改变 objectvar 。像这样:

class WorldMap
{

   ....
   ....
   public override string ToString()
   {
      return Lower + " " + Higher;
   }
}

或者(object 更改为 var ):

foreach (var view in mapList)
{
     Console.WriteLine(view.Lower + " " + view.Higher);
}

关于c# - 从列表中打印出对象元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35957637/

相关文章:

c# - 监听和接受连接的简单 Telnet 控制台

java - 将控制台光标移动到指定位置

c# - 使用 xamarin 表单进行调试时,图像未显示在我的手机中

c# - .NET Entity Framework Core 2.0 - 代码优先 - 意外的表关系结果

c# - 在 CommandBar 的 SecondaryCommand 上设置图标

c# - 使用 C# 调用 Azure 函数

console-application - 您如何在 .net 核心控制台应用程序中存储用户应用程序数据

c++ - 跨平台、基于交互式文本的界面,具有命令完成功能

c# - 如何让应用程序停止并运行调试器?

c# - 使用 Windows Phone 8.1 后退键按下事件