技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

C# CSV解析器TinyCsvParser使用示例:解析枚舉

作者:admin    時間:2023-5-22 11:27:39    瀏覽:

在上一文中,我介紹了C# CSV解析器TinyCsvParser使用示例:解析自定義格式,在本文中,我將繼續(xù)介紹C# CSV解析器TinyCsvParser使用示例:解析枚舉。

你還可以參閱以下文章,看看TinyCsvParser其他使用示例。

解析枚舉

有時需要將 CSV 數據解析為枚舉,這可以通過EnumConverter。

例子

想象一下,我們有一個包含車輛的 CSV 文件,該文件具有 NameVehicleTypeVehicleType 只能是一個 Car或 一個 Bike。

VehicleType;Name
Car;Suzuki Swift
Bike;A Bike

在我們的 C# 代碼中將 VehicleType 表示為枚舉很有用,所以首先在代碼中定義enum

private enum VehicleTypeEnum
{
    Car,
    Bike
}

然后定義結果應映射到的類:

private class Vehicle
{
    public VehicleTypeEnum VehicleType { get; set; }

    public string Name { get; set; }
}

現在必須定義 CSV 文件和域模型之間的映射。為了解析VehicleType 必須使用自定義轉換器,它只是一個EnumConverter<VehicleTypeEnum,構造函數參數發(fā)出信號以忽略解析枚舉的大小寫(大寫/小寫)。

private class CsvVehicleMapping : CsvMapping<Vehicle>
{
    public CsvVehicleMapping()
    {
        MapProperty(0, x => x.VehicleType, new EnumConverter<VehicleTypeEnum>(true));
        MapProperty(1, x => x.Name);
    }
}

然后可以像往常一樣解析 CSV 數據:

[Test]
public void CustomEnumConverterTest()
{
    CsvParserOptions csvParserOptions = new CsvParserOptions(true, ';');
    CsvReaderOptions csvReaderOptions = new CsvReaderOptions(new[] { Environment.NewLine });
    CsvVehicleMapping csvMapper = new CsvVehicleMapping();
    CsvParser<Vehicle> csvParser = new CsvParser<Vehicle>(csvParserOptions, csvMapper);

    var stringBuilder = new StringBuilder()
        .AppendLine("VehicleType;Name")
        .AppendLine("Car;Suzuki Swift")
        .AppendLine("Bike;A Bike");

    var result = csvParser
        .ReadFromString(csvReaderOptions, stringBuilder.ToString())
        .ToList();

    Assert.AreEqual(VehicleTypeEnum.Car, result[0].Result.VehicleType);
    Assert.AreEqual("Suzuki Swift", result[0].Result.Name);

    Assert.AreEqual(VehicleTypeEnum.Bike, result[1].Result.VehicleType);
    Assert.AreEqual("A Bike", result[1].Result.Name);
}

是不是很容易?

總結

本文介紹了C# CSV解析器TinyCsvParser使用示例:解析枚舉,你還可以通過以下文章參閱TinyCsvParser更多使用示例。

相關文章

標簽: asp.net  CSharp  CSV  TinyCsvParser  
x
  • 站長推薦
/* 左側顯示文章內容目錄 */