在C#中,我们可以使用System.IO命名空间提供的类和方法来操作CSV(逗号分隔值)文件。以下是一个通用的CSV文件操作类的示例代码,详细说明了如何实现常见的读取和写入CSV文件的功能。
C#public class CsvFile
{
private string filePath;
private char delimiter;
public CsvFile(string filePath, char delimiter = ',')
{
this.filePath = filePath;
this.delimiter = delimiter;
}
public List<string[]> ReadAll(System.Text.Encoding encoding)
{
List<string[]> data = new List<string[]>();
try
{
using (StreamReader reader = new StreamReader(filePath, encoding)
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] values = line.Split(delimiter);
data.Add(values);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return data;
}
public void WriteAll(List<string[]> data)
{
try
{
using (StreamWriter writer = new StreamWriter(filePath))
{
foreach (string[] values in data)
{
string line = string.Join(delimiter.ToString(), values);
writer.WriteLine(line);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
状态模式是一种行为型设计模式,它允许一个对象在其内部状态改变时改变其行为。状态模式将对象的行为封装在不同的状态类中,使得对象可以根据其内部状态的变化而改变其行为,而无需在对象中使用大量的条件语句。
状态模式适用于以下场景:
状态模式可以帮助我们将复杂的条件逻辑分散到不同的状态类中,使得代码更加清晰、可维护和可扩展。
访问者模式是一种行为型设计模式,它允许你在不修改对象结构的情况下定义新的操作。通过将操作封装在访问者对象中,可以在不改变对象结构的情况下,为对象结构中的每个元素提供新的操作。
访问者模式适用于以下情况:
策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。通过将算法封装在独立的策略类中,客户端可以根据需要动态地切换算法,而无需修改使用算法的代码。
策略模式由三个主要组件组成:
备忘录模式是一种行为设计模式,它允许在不破坏封装的情况下捕获和恢复对象的内部状态。该模式通过将对象的状态保存到备忘录对象中,并在需要时从备忘录中恢复状态,实现了对象状态的保存和恢复。
备忘录模式由以下几个角色组成: