将结构存储在列表中,然后显示列表?

问题描述:

所以我完全不熟悉编程;我已经阅读了许多类似的问题和相应的答案,并且花费了更多的时间,而不是我想承认尝试不同的方式来解决我的问题,但我似乎无法找到问题所在。无论如何,这是我的代码:将结构存储在列表中,然后显示列表?

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,这个代码只是我的问题的准系统表示。

你想是这样的:

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(); 
    } 
} 
+0

完美,string.Format(...)是我一直在寻找的! – Welsing

列表存储您的结构。至于展示他们,这不符合魔法。您必须遍历列表并显示每个列表。

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); 
} 

您需要遍历城市列表以显示它们:

Console.WriteLine("List: "); 

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