From 2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 12 May 2023 09:24:40 +0800 Subject: *misc --- .../CsvHelper-master/src/CsvHelper/IReaderRow.cs | 428 +++++++++++++++++++++ 1 file changed, 428 insertions(+) create mode 100644 ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs (limited to 'ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs') diff --git a/ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs b/ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs new file mode 100644 index 0000000..0d75a53 --- /dev/null +++ b/ThirdParty/CsvHelper-master/src/CsvHelper/IReaderRow.cs @@ -0,0 +1,428 @@ +// Copyright 2009-2022 Josh Close +// This file is a part of CsvHelper and is dual licensed under MS-PL and Apache 2.0. +// See LICENSE.txt for details or visit http://www.opensource.org/licenses/ms-pl.html for MS-PL and http://opensource.org/licenses/Apache-2.0 for Apache 2.0. +// https://github.com/JoshClose/CsvHelper +using System; +using CsvHelper.Configuration; +using CsvHelper.TypeConversion; + +namespace CsvHelper +{ + /// + /// Defines methods used to read parsed data + /// from a CSV file row. + /// + public interface IReaderRow + { + /// + /// Gets the column count of the current row. + /// This should match . + /// + int ColumnCount { get; } + + /// + /// Gets the field index the reader is currently on. + /// + int CurrentIndex { get; } + + /// + /// Gets the header record. + /// + string[]? HeaderRecord { get; } + + /// + /// Gets the parser. + /// + IParser Parser { get; } + + /// + /// Gets the reading context. + /// + CsvContext Context { get; } + + /// + /// Gets or sets the configuration. + /// + IReaderConfiguration Configuration { get; } + + /// + /// Gets the raw field at position (column) index. + /// + /// The zero based index of the field. + /// The raw field. + string? this[int index] { get; } + + /// + /// Gets the raw field at position (column) name. + /// + /// The named index of the field. + /// The raw field. + string? this[string name] { get; } + + /// + /// Gets the raw field at position (column) name. + /// + /// The named index of the field. + /// The zero based index of the field. + /// The raw field. + string? this[string name, int index] { get; } + + /// + /// Gets the raw field at position (column) index. + /// + /// The zero based index of the field. + /// The raw field. + string? GetField(int index); + + /// + /// Gets the raw field at position (column) name. + /// + /// The named index of the field. + /// The raw field. + string? GetField(string name); + + /// + /// Gets the raw field at position (column) name and the index + /// instance of that field. The index is used when there are + /// multiple columns with the same header name. + /// + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The raw field. + string? GetField(string name, int index); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The index of the field. + /// The field converted to . + object? GetField(Type type, int index); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The named index of the field. + /// The field converted to . + object? GetField(Type type, string name); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The field converted to . + object? GetField(Type type, string name, int index); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The index of the field. + /// The used to convert the field to . + /// The field converted to . + object? GetField(Type type, int index, ITypeConverter converter); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The named index of the field. + /// The used to convert the field to . + /// The field converted to . + object? GetField(Type type, string name, ITypeConverter converter); + + /// + /// Gets the field converted to using + /// the specified . + /// + /// The type of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The used to convert the field to . + /// The field converted to . + object? GetField(Type type, string name, int index, ITypeConverter converter); + + /// + /// Gets the field converted to T at position (column) index. + /// + /// The of the field. + /// The zero based index of the field. + /// The field converted to T. + T? GetField(int index); + + /// + /// Gets the field converted to T at position (column) name. + /// + /// The of the field. + /// The named index of the field. + /// The field converted to T. + T? GetField(string name); + + /// + /// Gets the field converted to T at position + /// (column) name and the index instance of that field. The index + /// is used when there are multiple columns with the same header name. + /// + /// + /// The named index of the field. + /// The zero based index of the instance of the field. + /// + T? GetField(string name, int index); + + /// + /// Gets the field converted to T at position (column) index using + /// the given . + /// + /// The of the field. + /// The zero based index of the field. + /// The used to convert the field to T. + /// The field converted to T. + T? GetField(int index, ITypeConverter converter); + + /// + /// Gets the field converted to T at position (column) name using + /// the given . + /// + /// The of the field. + /// The named index of the field. + /// The used to convert the field to T. + /// The field converted to T. + T? GetField(string name, ITypeConverter converter); + + /// + /// Gets the field converted to T at position + /// (column) name and the index instance of that field. The index + /// is used when there are multiple columns with the same header name. + /// + /// The of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The used to convert the field to T. + /// The field converted to T. + T? GetField(string name, int index, ITypeConverter converter); + + /// + /// Gets the field converted to T at position (column) index using + /// the given . + /// + /// The of the field. + /// The used to convert the field to T. + /// The zero based index of the field. + /// The field converted to T. + T? GetField(int index) where TConverter : ITypeConverter; + + /// + /// Gets the field converted to T at position (column) name using + /// the given . + /// + /// The of the field. + /// The used to convert the field to T. + /// The named index of the field. + /// The field converted to T. + T? GetField(string name) where TConverter : ITypeConverter; + + /// + /// Gets the field converted to T at position + /// (column) name and the index instance of that field. The index + /// is used when there are multiple columns with the same header name. + /// + /// The of the field. + /// The used to convert the field to T. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The field converted to T. + T? GetField(string name, int index) where TConverter : ITypeConverter; + + /// + /// Gets the field converted to T at position (column) index. + /// + /// The of the field. + /// The zero based index of the field. + /// The field converted to type T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, int index, out object? field); + + /// + /// Gets the field converted to T at position (column) name. + /// + /// The of the field. + /// The named index of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, string name, out object? field); + + /// + /// Gets the field converted to T at position + /// (column) name and the index instance of that field. The index + /// is used when there are multiple columns with the same header name. + /// + /// The of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, string name, int index, out object? field); + + /// + /// Gets the field converted to T at position (column) index + /// using the specified . + /// + /// The of the field. + /// The zero based index of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, int index, ITypeConverter converter, out object? field); + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The named index of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, string name, ITypeConverter converter, out object? field); + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(Type type, string name, int index, ITypeConverter converter, out object? field); + + /// + /// Gets the field converted to T at position (column) index. + /// + /// The of the field. + /// The zero based index of the field. + /// The field converted to type T. + /// A value indicating if the get was successful. + bool TryGetField(int index, out T? field); + + /// + /// Gets the field converted to T at position (column) name. + /// + /// The of the field. + /// The named index of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, out T? field); + + /// + /// Gets the field converted to T at position + /// (column) name and the index instance of that field. The index + /// is used when there are multiple columns with the same header name. + /// + /// + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, int index, out T? field); + + /// + /// Gets the field converted to T at position (column) index + /// using the specified . + /// + /// The of the field. + /// The zero based index of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(int index, ITypeConverter converter, out T? field); + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The named index of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, ITypeConverter converter, out T? field); + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The used to convert the field to T. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, int index, ITypeConverter converter, out T? field); + + /// + /// Gets the field converted to T at position (column) index + /// using the specified . + /// + /// The of the field. + /// The used to convert the field to T. + /// The zero based index of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(int index, out T? field) where TConverter : ITypeConverter; + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The used to convert the field to T. + /// The named index of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, out T? field) where TConverter : ITypeConverter; + + /// + /// Gets the field converted to T at position (column) name + /// using the specified . + /// + /// The of the field. + /// The used to convert the field to T. + /// The named index of the field. + /// The zero based index of the instance of the field. + /// The field converted to T. + /// A value indicating if the get was successful. + bool TryGetField(string name, int index, out T? field) where TConverter : ITypeConverter; + + /// + /// Gets the record converted into T. + /// + /// The of the record. + /// The record converted to T. + T? GetRecord(); + + /// + /// Get the record converted into T. + /// + /// The of the record. + /// The anonymous type definition to use for the record. + /// The record converted to T. + T? GetRecord(T anonymousTypeDefinition); + + /// + /// Gets the record. + /// + /// The of the record. + /// The record. + object? GetRecord(Type type); + } +} -- cgit v1.1-26-g67d0