有关系的两个列表,如何向用户显示它们

本文关键字:用户 显示 列表 两个 有关系 | 更新日期: 2023-09-27 18:05:33

我的问题是我想制作一个使用两个列表的程序,这对我来说几乎是不可能理解的。好吧,我想做一个程序,首先输入城市名称,然后输入城市的温度。这就是关系的来源。

我已经开始制作一个"列表类",它看起来像这样:

class citytemp
{
    private string city;
    private double temp;
    public citytemp(string city, double temp)
    {
        this.city = city;
        this.temp = temp;
    }
    public string City
    {
        get { return city; }
        set { city = value; }
    }
    public double Temp
    {
        get { return temp; }
        set { temp = value; }
    }
}

然后我在程序中列出这个

List<citytemp> temps = new List<citytemp>();

这一切对我来说都很好。但当我试图向用户显示列表时,什么都不会显示。我用这些线条来展示它:

for (int i = 0; i > temps.Count; i++)
{
    Console.WriteLine(temps[i].City, temps[i].Temp);
}

BTW:我通过以下行将"事物"添加到列表中:

temps.Add(new citytemp(tempcity, temptemp));

其中CCD_ 1和CCD_。它们只是为了让我更简单地将它们添加到列表中,因为我使用switch语句将它们添加到此列表中。

为了让事情更清楚,我的问题是我不知道如何在程序中向用户显示列表。

有关系的两个列表,如何向用户显示它们

您的问题在for循环中。将其更改为此

for (int i = 0; i < temps.Count; i++)

即将大于>的运算符更改为小于<

您的for循环中有一个错误。

for (int i = 0; i > temps.Count; i++)

应该是:

for (int i = 0; i < temps.Count; i++)

首先,我不确定您所说的"2个列表"是什么意思,因为您的代码中只有一个列表。

然而,你遇到的"什么都没有出现"的问题很容易解决。

这行代码:

for (int i = 0; i > temps.Count; i++)

应阅读如下:

i = 0;
while (i > temps.Count)
{
    ... rest of your loop body here
    i++;
}

如果你读过这篇文章,你会注意到for语句的第二部分不是何时终止,而是持续多久

把它改成这个,你应该很好:

for (int i = 0; i < temps.Count; i++)
                  ^
                  +-- changed from >

我认为哈希表,特别是字典会在这里对你有所帮助:

var cityTemps = new Dictionary<string, double>();
cityTemps.Add("TestCity", 56.4);
foreach (var kvp in cityTemps)
    Console.WriteLine("{0}, {1}", kvp.Key, kvp.Value);

除了前面提到的循环外,还要小心使用Console.WriteLine,因为它将String作为第一个参数,并假定它是一种格式,将object[] params作为第二个参数。当您将tempcity0传递给它时,因为它是String,它会认为它是格式,而temps[i].Temp是参数,不会正确显示。

你想要什么:

Console.WriteLine("City: {0} Temp: {1}", temps[i].City, temps[i].Temp);

这里我使用"City: {0} Temp: {1}"作为字符串的格式和适当的参数。

这个答案可以让你以后不必担心为什么只显示城市名称。