【问题标题】:Storing structs in list and then displaying list?将结构存储在列表中然后显示列表?
【发布时间】:2014-01-13 09:26:18
【问题描述】:

所以我对编程完全陌生;我在这里阅读了许多类似的问题和各自的答案,并且花费的时间比我想承认的尝试不同的方法来解决我的问题要多,但我似乎无法找到问题所在。无论如何,这是我的代码:

public struct City
{
    public string cityName { get; set; }
    public float cityTemp { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
        var cityList = new List<City>();
        cityList.Add(new City
        {
            cityName = "Stockholm",
            cityTemp = 22.65f
        });
        Console.WriteLine("List: ");
        Console.WriteLine(cityList);
        Console.ReadKey();
    }
}

如何让列表存储我的结构以及如何正确显示列表? 编辑:我知道我需要使用 foreach,这段代码只是我的问题的准系统表示。

【问题讨论】:

    标签: c# list


    【解决方案1】:

    你想要这样的东西:

    public struct City
    {
        public string cityName { get; set; }
        public float cityTemp { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var cityList = new List<City>();
            cityList.Add(new City
            {
                cityName = "Stockholm",
                cityTemp = 22.65f
            });
            cityList.Add(new City
            {
                cityName = "London",
                cityTemp = 25.24f
            });         
            Console.WriteLine("List: ");
            foreach (var city in cityList)
            {
                Console.WriteLine(string.Format("City: {0} is currently: {1}oC", city.cityName, city.cityTemp);
            }
            Console.ReadKey();
        }
    }
    

    您还可以像这样覆盖ToString(),让您的城市输出合理的响应:

    public struct City
    {
        public string cityName { get; set; }
        public float cityTemp { get; set; }
        public override string ToString()
        {
            return String.Format("City: {0} is currently: {1}oC", cityName, cityTemp);
        }
    }
    

    那么你可以:

    class Program
    {
        static void Main(string[] args)
        {
            var cityList = new List<City>();
            cityList.Add(new City
            {
                cityName = "Stockholm",
                cityTemp = 22.65f
            });
            cityList.Add(new City
            {
                cityName = "London",
                cityTemp = 25.24f
            });         
            Console.WriteLine("List: ");
            foreach (var city in cityList)
            {
                Console.WriteLine(city);
            }
            Console.ReadKey();
        }
    }
    

    【讨论】:

    • 完美,string.Format(...) 正是我想要的!
    【解决方案2】:

    列表存储你的结构。至于显示它们,这不是魔术。您必须遍历列表并显示每一个。

    public struct City
    {
        public string cityName { get; set; }
        public float cityTemp { get; set; }
        public override string ToString()
        {
            return String.Format("{0} {1}", cityName, cityTemp);
        }
    }
    
    public void DisplayAll(IEnumerable<City> cities)
    {
        foreach (var city in cities)
            Console.WriteLine(city);
    }
    

    【讨论】:

      【解决方案3】:

      您需要循环显示您的城市列表:

      Console.WriteLine("List: ");
      
      foreach(var city in cityList)
      {
          Console.WriteLine(city.cityName + " " + city.cityTemp); 
      }
      

      【讨论】:

        猜你喜欢
        • 2020-11-20
        • 1970-01-01
        • 2019-09-30
        • 2017-08-01
        • 2023-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-30
        相关资源
        最近更新 更多