2013-03-23 76 views
1

我的問題是,我想製作一個使用兩個列表,這幾乎是不可能的,我理解的程序。好的,這樣做的好處是,我想製作一個程序,首先輸入城市名稱,然後輸入城市的溫度。這是關係來自何處。兩個關係列表,如何將它們顯示給用戶?

我已讓「列表類」,它看起來像這樣開始:

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

...其中tempcitytemptemp是臨時變量。他們只有在那裏,使其更簡單,我將它們添加到列表中,因爲我使用的是switch聲明將它們添加到列表中。

爲了讓事情更清晰,我的問題是,我不知道如何,我想以顯示列表中該程序的用戶。

+0

感覺現在很愚蠢-.-「,但是要感謝你們所有人幫助我:) – 2013-03-23 16:57:58

回答

1

你的問題是在for循環。將其更改爲這個

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

即改變大於>操作員在小於<

0

你在你的for循環有一個錯誤。

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

它應該是:

所有的
for (int i = 0; i < temps.Count; i++) 
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 > 
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); 
+0

如果Adam想爲班級添加更多的領域(例如人口)怎麼辦?短視的解決方案 – 2013-03-23 16:23:36

+0

更多考慮到目前的運營限制,有效的解決方案如果有更多的領域存在,而且這個問題沒有具體說明:「我想製作一個使用兩個列表的計劃」,那麼我的反應就會不同,我只是看到了有機會展示在OP之前他可能沒有遇到過的技術。 – 2013-03-23 16:26:24

0

除了環已請注意0​​,因爲它需要一個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}"作爲字符串和適當的參數格式。

這個答案是爲了讓你後來頭疼,想知道爲什麼只顯示城市名稱。

相關問題