using System;
using System.Collections.Generic;
using System.IO;
using CsvHelper;
using CsvHelper.Configuration;
public class Program
{
public static void Main()
{
// 创建一个示例列表
var records = new List<Person>
{
new Person { Id = 1, Name = "John", Age = 30 },
new Person { Id = 2, Name = "Jane", Age = 25 }
};
// 使用内存流来模拟文件写入
using (var writer = new StreamWriter("output.csv"))
using (var csv = new CsvWriter(writer, new CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture)))
{
// 写入记录到CSV文件
csv.WriteRecords(records);
}
// 读取CSV文件
using (var reader = new StreamReader("output.csv"))
using (var csv = new CsvReader(reader, new CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture)))
{
var config = new CsvConfiguration(System.Globalization.CultureInfo.InvariantCulture)
{
HasHeaderRecord = true
};
var readRecords = csv.GetRecords<Person>();
foreach (var person in readRecords)
{
Console.WriteLine($"Id: {person.Id}, Name: {person.Name}, Age: {person.Age}");
}
}
}
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
引入命名空间:
CsvHelper 和 CsvHelper.Configuration 是用于处理 CSV 文件的主要命名空间。System, System.Collections.Generic, 和 System.IO 是常用的 .NET 命名空间。创建示例数据:
Person 对象的列表,每个对象有 Id, Name, 和 Age 属性。写入 CSV 文件:
StreamWriter 和 CsvWriter 将记录写入到 output.csv 文件中。CsvWriter 的构造函数需要一个 StreamWriter 实例和一个 CsvConfiguration 实例。读取 CSV 文件:
StreamReader 和 CsvReader 从 output.csv 文件中读取记录。CsvReader 的构造函数同样需要一个 StreamReader 实例和一个 CsvConfiguration 实例。HasHeaderRecord = true 表示 CSV 文件的第一行是列标题。输出读取的结果:
Person 对象的属性值。通过这段代码,你可以轻松地将 C# 对象序列化为 CSV 文件,并从 CSV 文件中反序列化回对象。
上一篇:c#加密
下一篇:c# jtoken
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站