C# 列表仅打印最后一个元素

C# 列表仅打印最后一个元素,c#,C#,我是c#的新手,非常感谢能得到的所有帮助。程序可以运行,但我有一个问题,我想打印列表中的所有国家(3个国家),但我只得到最后一个国家作为输出 如何打印列表中的所有国家/地区 主窗口: public void euHourly() { List<Tuple<string, string>> euHourly = new List<Tuple<string, string>>(); euHourl

我是c#的新手,非常感谢能得到的所有帮助。程序可以运行,但我有一个问题,我想打印列表中的所有国家(3个国家),但我只得到最后一个国家作为输出

如何打印列表中的所有国家/地区

主窗口:

        public void euHourly()
    {
        List<Tuple<string, string>> euHourly = new List<Tuple<string, string>>();
        euHourly.Add(Tuple.Create("Riga", "https://api.openweathermap.org/data/2.5/onecall?lat=57&lon=23&units=metric&exclude=current,minutely,hourly,alerts&appid=e4ef2ac494977d735811075476bcc0bf"));
        euHourly.Add(Tuple.Create("Tallinn", "https://api.openweathermap.org/data/2.5/onecall?lat=59.43&lon=24.75&units=metric&exclude=current,minutely,hourly,alerts&appid=e4ef2ac494977d735811075476bcc0bf"));
        euHourly.Add(Tuple.Create("Moscow", "https://api.openweathermap.org/data/2.5/onecall?lon=37.61&lat=55.75&units=metric&exclude=current,minutely,hourly,alerts&appid=e4ef2ac494977d735811075476bcc0bf"));

        foreach (var link in euHourly)
        {
            var filepath = Orai.Default.txtBox + "\\Europe.txt";
            StreamWriter sw = File.CreateText(filepath);
            sw.Close();
            StreamWriter file = new StreamWriter(new FileStream(filepath, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite), Encoding.UTF8);

            try
            {
                List<Tuple<string, string>> url = getData.euDataDaily(link.Item2);
                file.WriteLine("City;Temperature;Icon");
                foreach (var tuple in url)
                {
                    try
                    {
                        file.WriteLine(link.Item1 + ";" + tuple.Item1 + ";" + tuple.Item2) ;
                    }
                    catch
                    {
                        MessageBox.Show("No data");
                    }
                }
                file.Close();
                pbStatus.Dispatcher.Invoke(() => pbStatus.Value = pbStatus.Value + 5, DispatcherPriority.Background);

            }
            catch
            {
                MessageBox.Show("No data");
            }
        }
    }

我也是这个网站的新手。如果有什么不适合我的问题,请告诉我。感谢所有帮助:)。

您创建了3次文件。您需要将
File.CreateText
和相关代码(例如文件头)移到
foreach

之外,谢谢您的回答。但是当我移出代码时,我的程序显示“无数据”。你是否移动了
。关闭了
?您应该只关闭一次。顺便说一句。如果将
catch
更改为
catch(异常示例)
,则可以看到问题所在。
    public static List<Tuple<string, string>> euDataDaily(string url)
    {
        var aTuple = new List<Tuple<string, string>> { };
        WebClient c = new WebClient();
        var data = c.DownloadString(url);
        JObject o = JObject.Parse(data);

        string conditionCode="";
        string unixDate = "";
        string dayTemp="";

        foreach (var result in o["daily"])
            {
                unixDate = (string)result["dt"];

            if (unixDate.Equals("1617786000"))
                {
                    dayTemp = (string)result["temp"]["day"];
                }
   
                if (unixDate.Equals("1617786000"))
                {
                    foreach (var resultas in result["weather"])
                    {
                        conditionCode = (string)resultas["description"];
                    }      
                }             
            }

            aTuple.Add(Tuple.Create(dayTemp, conditionCode));
        
        return aTuple;
    }
City;Temperature;Icon
Moscow;9.32;light rain