1

私の問題は、2つのリストを使用するプログラムを作成したいということです。これは私にはほとんど理解できません。さて、取引は、最初に都市名を入力し、次に都市の気温を入力するプログラムを作成したいということです。これが関係の源です。

私は次のような「リストクラス」を作成することから始めました。

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これらは、ステートメントを使用してリストに追加しているため、リストへの追加をより簡単にするためにのみ存在します。

より明確にするために、私の問題は、プログラムでユーザーにリストを表示する方法がわからないことです。

4

5 に答える 5

1

問題はforループにあります。これに変更してください

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

つまり、大なり記号を小なり記号に変更し>ます<

于 2013-03-23T16:17:13.733 に答える
0

forループにエラーがあります。

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

そのはず:

for (int i = 0; i < temps.Count; i++)
于 2013-03-23T16:17:34.410 に答える
0

まず、コードにリストが1つしかないため、「2つのリスト」の意味がわかりません。

ただし、「何も表示されない」という問題は簡単に修正できます。

このコード行:

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

次のように読む必要があります:

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

    i++;
}

これを読むと、forステートメントの2番目の部分は、いつ終了するかではなく、どれだけ長く続けるかであることがわかります。

これに変更すると、うまくいくはずです。

for (int i = 0; i < temps.Count; i++)
                  ^
                  +-- changed from >
于 2013-03-23T16:17:54.703 に答える
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);
于 2013-03-23T16:18:48.847 に答える
0

前述のループに加えて、フォーマットであると想定する最初の引数と2番目のパラメーターを受け取るConsole.WriteLineので注意してください。あなたがそれを渡すとき、それはそのフォーマットであり、パラメータであると考え、正しく表示されません。Stringobject[] paramstemps[i].CityStringtemps[i].Temp

代わりに必要なもの:

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

ここでは"City: {0} Temp: {1}"、文字列と適切なパラメータの形式として使用しています。

この答えは、なぜ都市名だけが表示されているのか疑問に思った後の頭痛の種を減らすためです。

于 2013-03-23T16:19:57.683 に答える