【发布时间】:2021-11-14 05:37:44
【问题描述】:
我正在执行一项任务,该任务将显示 2004 年有多少国家加入了欧盟。 我还想收到 2004 年加入的国家的名称。我开始做我的工作,但我只得到塞浦路斯。 问题是有几个国家在 2004 年加入。 如何获取2004年加入的所有国家名称? 我在控制台应用程序(.NET Framework)中完成了我的任务。 对于该任务,我使用了一个包含数据的 txt 文件。 这是我的代码:
class Program
{
static List<Country> joining = new List<Country>();
static void read()
{
string[] rows=File.ReadAllLines("EU.txt");
foreach (var item in rows)
{
joining.Add(new Country(item));
}
}
static void Main(string[] args)
{
read();
// how many countries:
Console.WriteLine($"{joining.Count(item =>item.date.Split('.')[1] == "05" )}countries joined.");
//names:
Console.WriteLine($"Country names:{joining.Find(item =>item.date.Split('.')[1] == "05" ).name}"); // !!! this code is bad
Console.ReadKey();
}
}
class Country
{
//Fields
public string date, name;
//ctor
public Country(string row)
{
name=row.Split(';')[0];
date = row.Split(';')[1];
}
}
EU.txt:
奥地利;1995.01.01 比利时;1958.01.01 保加利亚;2007.01.01 塞浦路斯;2004.05.01 捷克语;2004.05.01 丹麦;1973.01.01 英国;1973.01.01 爱沙尼亚;2004.05.01 芬兰;1995.01.01 法国;1958.01.01 希腊;1981.01.01 荷兰;1958.01.01 克罗地亚;2013;07.01 爱尔兰;1973.01.01 波兰;2004.05.01 拉脱维亚;2004.05.01 立陶宛;2004.05.01 卢森堡;1958.01.01 匈牙利;2004.05.01 马耳他;2004.05.01 德国;1958.01.01 意大利;1958.01.01 葡萄牙;1986.01.01 罗马尼亚;2007.01.01 西班牙;1986.01.01 瑞典;1995.01.01 斯洛伐克;2004.05.01 斯洛文尼亚;2004.05.01【问题讨论】:
-
joining.Find(...)只会找到第一项(在您的情况下为Cyprus)。 -
您想要 2004 年,还是想要 5 月?因为问题文本说明了一件事,而问题代码说明了另一件事。
-
另外,从不将示例数据发布为图像。
标签: c# .net console-application txt