我的问题是我想制作一个使用两个列表的程序,这对我来说几乎是不可能理解的。好的,所以这笔交易是我想要制作一个程序,你首先键入城市名称,然后输入城市的温度。这就是这种关系的来源。
我已经开始制作一个“列表类”,如下所示:
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);
}
顺便说一句:我通过这些行在列表中添加“东西”:
temps.Add(new citytemp(tempcity, temptemp));
...其中tempcity
和temptemp
是临时变量。它们只是为了让我更简单地将它们添加到列表中,因为我使用switch
语句将它们添加到列表中。
为了使事情更清楚,我的问题是我不知道如何在程序中向用户显示列表。
答案 0 :(得分:1)
您的问题出在for循环中。将其更改为此
for (int i = 0; i < temps.Count; i++)
即。将大于>
的运算符更改为小于<
答案 1 :(得分:0)
for循环中有错误。
for (int i = 0; i > temps.Count; i++)
它应该是:
for (int i = 0; i < temps.Count; i++)
答案 2 :(得分:0)
首先,我不确定“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 >
答案 3 :(得分:0)
我认为哈希表,特别是字典会帮助你:
var cityTemps = new Dictionary<string, double>();
cityTemps.Add("TestCity", 56.4);
foreach (var kvp in cityTemps)
Console.WriteLine("{0}, {1}", kvp.Key, kvp.Value);
答案 4 :(得分:0)
除了已经提到的循环之外,请注意Console.WriteLine
,因为它将String
作为第一个参数,它假设是一种格式,object[] params
作为第二个参数。从temps[i].City
开始向String
传递temps[i].Temp
时,它会认为格式和Console.WriteLine("City: {0} Temp: {1}", temps[i].City, temps[i].Temp);
是参数,并且无法正确显示。
你想要的是什么:
"City: {0} Temp: {1}"
这里我使用{{1}}作为字符串的格式和正确的参数。
这个答案是为了避免让您头疼,想知道为什么只显示城市名称。