如何用字符串分隔列表项以保存到文本文件中
本文关键字:保存 文本 文件 何用 字符串 分隔 列表 | 更新日期: 2023-09-27 18:01:23
我正在C#中创建一个Windows窗体应用程序,用于存储有关汽车后备箱销售的详细信息,如日期、地点、推销成本,如果它们是用于慈善等。其中一个规范是,必须能够将一些信息保存到文本文件中,例如将所有汽车后备箱销售保存到carbotsaleall.txt文件中,我还需要一个按钮来保存所有慈善&非慈善汽车后备箱销售到不同的文本文件。
我已经编写了将所有汽车后备箱销售保存到文本文件中的代码,但我不知道如何将其他汽车后备箱销售区分开来,这取决于它们是否用于慈善事业。
这是我在按钮之间保存所有汽车后备箱销售的代码:
List<CarBootSale> carbootsales = carBootSaleList.ReturnList();
textReportGenerator.GenerateAllReport(carbootsales, AppData.CARBOOTSALE);
MessageBox.Show("All Car Boot Sales have been written to the report file: " + AppData.CARBOOTSALE);
这是我在TextReportGenerator类中的代码:
public void GenerateAllReport<T>(List<T> aList, string filePath) where T : IDisplay
{
FileStream outFile;
StreamWriter writer;
outFile = new FileStream(filePath, FileMode.Create, FileAccess.Write);
writer = new StreamWriter(outFile);
foreach (T obj in aList)
{
writer.WriteLine(obj.Display());
}
writer.Close();
outFile.Close();
}
这是CarBootSale类和构造器等:
public class CarBootSale : IDisplay
{
public string ID { get; set; }
public string Date { get; set; }
public string Location { get; set; }
public double PitchCost { get; set; }
public int Capacity { get; set; }
public string Charity { get; set; }
public string CharityName { get; set; }
public string Catering { get; set; }
public CarBootSale(string id, string date, string location, double pitchcost, int capacity, string charity, string charityname, string catering)
{
ID = id;
Date = date;
Location = location;
PitchCost = pitchcost;
Capacity = capacity;
Charity = charity;
CharityName = charityname;
Catering = catering;
}
我如何修改TextReportGenerator类中的按钮代码和代码,以便也可以选择将慈善汽车后备箱销售保存到carbotsalecharity.txt
using System.Linq;
...
foreach (var obj in aList.Where(x -> x.Charity.ToLower() == "yes")
{
writer.WriteLine(obj.Display());
}
如果您需要更多的泛化(即,您需要它来处理任何T(,请检查Predicate Builder或Dynamic Linq,或者让T继承一个包含Charity的公共接口。