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