C# 如何将按年份排序的内容写入文本文件
我无法按诺贝尔[I]年订购我的txt文件。 文件正在减少。我必须在成长中做些什么。 我根本不是天才,所以请尽量简单 非常感谢C# 如何将按年份排序的内容写入文本文件,c#,C#,我无法按诺贝尔[I]年订购我的txt文件。 文件正在减少。我必须在成长中做些什么。 我根本不是天才,所以请尽量简单 非常感谢 struct datas { public int year; public string type; public string firstname; public string lastname; } datas[]nobel=新数据[923]; 使用(var sw=new StreamWriter(“orvosi.txt”)) {
struct datas
{
public int year;
public string type;
public string firstname;
public string lastname;
}
datas[]nobel=新数据[923];
使用(var sw=new StreamWriter(“orvosi.txt”))
{
for(int i=0;i
在使用语句之前,请将以下内容:
nobel = nobel.OrderBy(x => x.year).ToArray();
根据以后是否需要排序数组,还可以将其简化为以下内容。还要注意字符串插值$
(),它简化了输出字符串的构造
for (datas n in nobel.OrderBy(x=> x.year)) {
if (n.type == "orvosi")
sw.WriteLine($"{n.year}:{n.firstname} {n.lastname}");
}
使用类和一些扩展方法(、和),可以将代码缩短为一条语句
- 我们可以使用,它将
IEnumerable
的内容写入一个文件(每个项目都在它自己的行上)
- 我们可以首先使用
where()
子句将数据过滤到那些type==“orvosi”
的位置
- 然后,我们可以使用
OrderBy(data=>data.year)
按year
属性对过滤后的项目进行排序
- 最后,对于过滤有序集中的每个项目,我们可以
选择一个字符串(使用),其中包含要写入文件的属性
例如:
File.WriteAllLines("orvosi.txt", nobel
.Where(data => data.type == "orvosi")
.OrderBy(data => data.year)
.Select(data => $"{data.year}: {data.firstname} {data.lastname}"));
请注意,他必须使用System.Linq在代码顶部添加。成功!谢谢你的帮助!成功谢谢你的帮助!表示感谢的最好方式是将帮助你的答案标记为接受。如果你不知道怎么做,这可能有助于成功!谢谢你的帮助!成功谢谢你的帮助!
File.WriteAllLines("orvosi.txt", nobel
.Where(data => data.type == "orvosi")
.OrderBy(data => data.year)
.Select(data => $"{data.year}: {data.firstname} {data.lastname}"));