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

时间:2014-01-13 09:26:18

标签: c# list

所以我对编程完全不熟悉;我已经在这里阅读了许多类似的问题和各自的答案,花了更多的时间,而不是尝试尝试不同的方法来解决我的问题,但我似乎无法找到问题所在。无论如何,这是我的代码:

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,这段代码只是我问题的准确代表。

3 个答案:

答案 0 :(得分:2)

你想要这样的东西:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

Console.WriteLine("List: ");

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