有关系的两个列表,如何向用户显示它们
本文关键字:用户 显示 列表 两个 有关系 | 更新日期: 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
作为第二个参数。当您将tempcity
0传递给它时,因为它是String
,它会认为它是格式,而temps[i].Temp
是参数,不会正确显示。
你想要什么:
Console.WriteLine("City: {0} Temp: {1}", temps[i].City, temps[i].Temp);
这里我使用"City: {0} Temp: {1}"
作为字符串的格式和适当的参数。
这个答案可以让你以后不必担心为什么只显示城市名称。