summaryrefslogtreecommitdiff
path: root/ThirdParty/CsvHelper-master/docs/examples/reading
diff options
context:
space:
mode:
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs/examples/reading')
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html457
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html451
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html452
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html446
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/index.html469
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html463
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html514
-rw-r--r--ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html497
8 files changed, 3749 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html
new file mode 100644
index 0000000..4102d5d
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/enumerate-class-records/index.html
@@ -0,0 +1,457 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Enumerate Class Records | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="enumerate-class-records">Enumerate Class Records</h1>
+<p>Convert CSV rows into a class object that is re-used on every iteration of the enumerable. Each enumeration will hydrate the given record, but only the mapped members. If you supplied a map and didn't map one of the members, that member will not get hydrated with the current row's data. Be careful. Any methods that you call on the projection that force the evaluation of the <code>IEnumerable</code>, such as <code>ToList()</code>, you will get a list where all the records are the same instance you provided that is hydrated with the last record in the CSV file.</p>
+<h6 id="data">Data</h6>
+<pre><code>Id,Name
+1,one
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
+ {
+ var record = new Foo();
+ var records = csv.EnumerateRecords(record);
+ foreach (var r in records)
+ {
+ // r is the same instance as record.
+ }
+ }
+}
+
+public class Foo
+{
+ public int Id { get; set; }
+ public string Name { get; set; }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html
new file mode 100644
index 0000000..44e5bac
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-anonymous-type-records/index.html
@@ -0,0 +1,451 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Get Anonymous Type Records | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="get-anonymous-type-records">Get Anonymous Type Records</h1>
+<p>Convert CSV rows into anonymous type objects. You just need to supply the anonymous type definition.</p>
+<h6 id="data">Data</h6>
+<pre><code>Id,Name
+1,one
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
+ {
+ var anonymousTypeDefinition = new
+ {
+ Id = default(int),
+ Name = string.Empty
+ };
+ var records = csv.GetRecords(anonymousTypeDefinition);
+ }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html
new file mode 100644
index 0000000..98045ef
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-class-records/index.html
@@ -0,0 +1,452 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Get Class Records | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="get-class-records">Get Class Records</h1>
+<p>Convert CSV rows into class objects.</p>
+<h6 id="data">Data</h6>
+<pre><code>Id,Name
+1,one
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
+ {
+ var records = csv.GetRecords&lt;Foo&gt;();
+ }
+}
+
+public class Foo
+{
+ public int Id { get; set; }
+ public string Name { get; set; }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html
new file mode 100644
index 0000000..d1b8eb8
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/get-dynamic-records/index.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Get Dynamic Records | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="get-dynamic-records">Get Dynamic Records</h1>
+<p>Convert CSV rows into <code>dynamic</code> objects. Since there is no way to tell what type the properties should be, all the properties on the dynamic object are strings.</p>
+<h6 id="data">Data</h6>
+<pre><code>Id,Name
+1,one
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
+ {
+ var records = csv.GetRecords&lt;dynamic&gt;();
+ }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/index.html
new file mode 100644
index 0000000..cb0538a
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/index.html
@@ -0,0 +1,469 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Reading | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="reading">Reading</h1>
+<table>
+<thead>
+<tr>
+<th>Topics</th>
+<th> </th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a></td>
+<td></td>
+</tr>
+<tr>
+<td><a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a></td>
+<td></td>
+</tr>
+</tbody>
+</table>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html
new file mode 100644
index 0000000..dc8cb29
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-by-hand/index.html
@@ -0,0 +1,463 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Reading By Hand | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="reading-by-hand">Reading by Hand</h1>
+<p>Sometimes it's easier to not try and configure a mapping to match your class definition for various reasons. It's usually only a few more lines of code to just read the rows by hand instead.</p>
+<h6 id="data">Data</h6>
+<pre><code>Id,Name
+1,one
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
+ {
+ var records = new List&lt;Foo&gt;();
+ csv.Read();
+ csv.ReadHeader();
+ while (csv.Read())
+ {
+ var record = new Foo
+ {
+ Id = csv.GetField&lt;int&gt;(&quot;Id&quot;),
+ Name = csv.GetField(&quot;Name&quot;)
+ };
+ records.Add(record);
+ }
+ }
+}
+
+public class Foo
+{
+ public int Id { get; set; }
+ public string Name { get; set; }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html
new file mode 100644
index 0000000..baba878
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html
@@ -0,0 +1,514 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Reading Multiple Data Sets | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="reading-multiple-data-sets">Reading Multiple Data Sets</h1>
+<p>For some reason there are CSV files out there that contain multiple sets of CSV data in them. You should be able to read files like this without issue. You will need to detect when to change class types you are retreiving.</p>
+<h6 id="data">Data</h6>
+<pre><code>FooId,Name
+1,foo
+
+BarId,Name
+07a0fca2-1b1c-4e44-b1be-c2b05da5afc7,bar
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+ {
+ IgnoreBlankLines = false,
+ };
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, config))
+ {
+ csv.Context.RegisterClassMap&lt;FooMap&gt;();
+ csv.Context.RegisterClassMap&lt;BarMap&gt;();
+ var fooRecords = new List&lt;Foo&gt;();
+ var barRecords = new List&lt;Bar&gt;();
+ var isHeader = true;
+ while (csv.Read())
+ {
+ if (isHeader)
+ {
+ csv.ReadHeader();
+ isHeader = false;
+ continue;
+ }
+
+ if (string.IsNullOrEmpty(csv.GetField(0)))
+ {
+ isHeader = true;
+ continue;
+ }
+
+ switch (csv.HeaderRecord[0])
+ {
+ case &quot;FooId&quot;:
+ fooRecords.Add(csv.GetRecord&lt;Foo&gt;());
+ break;
+ case &quot;BarId&quot;:
+ barRecords.Add(csv.GetRecord&lt;Bar&gt;());
+ break;
+ default:
+ throw new InvalidOperationException(&quot;Unknown record type.&quot;);
+ }
+ }
+ }
+}
+
+public class Foo
+{
+ public int Id { get; set; }
+ public string Name { get; set; }
+}
+
+public class Bar
+{
+ public Guid Id { get; set; }
+ public string Name { get; set; }
+}
+
+public sealed class FooMap : ClassMap&lt;Foo&gt;
+{
+ public FooMap()
+ {
+ Map(m =&gt; m.Id).Name(&quot;FooId&quot;);
+ Map(m =&gt; m.Name);
+ }
+}
+
+public sealed class BarMap : ClassMap&lt;Bar&gt;
+{
+ public BarMap()
+ {
+ Map(m =&gt; m.Id).Name(&quot;BarId&quot;);
+ Map(m =&gt; m.Name);
+ }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>
diff --git a/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html
new file mode 100644
index 0000000..c86999e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-record-types/index.html
@@ -0,0 +1,497 @@
+<!DOCTYPE html>
+<html lang="en-us">
+<head>
+ <meta charSet="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="apple-touch-icon" sizes="57x57" href="/CsvHelper/favicons/apple-icon-57x57.png" />
+ <link rel="apple-touch-icon" sizes="60x60" href="/CsvHelper/favicons/apple-icon-60x60.png" />
+ <link rel="apple-touch-icon" sizes="72x72" href="/CsvHelper/favicons/apple-icon-72x72.png" />
+ <link rel="apple-touch-icon" sizes="76x76" href="/CsvHelper/favicons/apple-icon-76x76.png" />
+ <link rel="apple-touch-icon" sizes="114x114" href="/CsvHelper/favicons/apple-icon-114x114.png" />
+ <link rel="apple-touch-icon" sizes="120x120" href="/CsvHelper/favicons/apple-icon-120x120.png" />
+ <link rel="apple-touch-icon" sizes="144x144" href="/CsvHelper/favicons/apple-icon-144x144.png" />
+ <link rel="apple-touch-icon" sizes="152x152" href="/CsvHelper/favicons/apple-icon-152x152.png" />
+ <link rel="apple-touch-icon" sizes="180x180" href="/CsvHelper/favicons/apple-icon-180x180.png" />
+ <link rel="icon" type="image/png" sizes="192x192" href="/CsvHelper/favicons/android-icon-192x192.png" />
+ <link rel="icon" type="image/png" sizes="32x32" href="/CsvHelper/favicons/favicon-32x32.png" />
+ <link rel="icon" type="image/png" sizes="96x96" href="/CsvHelper/favicons/favicon-96x96.png" />
+ <link rel="icon" type="image/png" sizes="16x16" href="/CsvHelper/favicons/favicon-16x16.png" />
+ <link rel="manifest" href="/CsvHelper/manifest.json" />
+ <meta name="msapplication-TileColor" content="#ffffff" />
+ <meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
+ <meta name="theme-color" content="#ffffff" />
+ <title>Reading Multiple Record Types | CsvHelper</title>
+
+
+
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.1/css/bulma.min.css" />
+
+ <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/default.min.css" />
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/vs.min.css" />
+ <link rel="stylesheet" href="/CsvHelper/styles/index.css" />
+
+ <script defer src="https://use.fontawesome.com/releases/v5.14.0/js/all.js"></script>
+ <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
+</head>
+<body>
+ <header id="header" class="header">
+ <nav class="navbar is-light">
+ <div class="navbar-brand">
+ <a class="navbar-item" href="/CsvHelper">
+ <img src="/CsvHelper/images/logo.svg" width="66" height="28" />
+ </a>
+ <div id="navbar-burger" class="navbar-burger">
+ <span></span>
+ <span></span>
+ <span></span>
+ </div>
+ </div>
+ <div id="navbar-menu" class="navbar-menu">
+ <div class="navbar-start">
+ <a class="navbar-item" href="/CsvHelper/getting-started">Getting Started</a>
+ <a class="navbar-item" href="/CsvHelper/examples">Examples</a>
+ <a class="navbar-item" href="/CsvHelper/migration">Migration</a>
+ <a class="navbar-item" href="/CsvHelper/change-log">Change Log</a>
+ </div>
+ <div class="navbar-end">
+ <a class="navbar-item" href="https://twitter.com/JoshClose">
+ <span class="icon">
+ <i class="fab fa-twitter"></i>
+ </span>
+ </a>
+ <a class="navbar-item" href="https://github.com/JoshClose/CsvHelper">
+ <span class="icon">
+ <i class="fab fa-github"></i>
+ </span>
+ </a>
+ </div>
+ </div>
+ </nav>
+</header>
+
+
+ <main id="main" class="container is-fluid">
+ <div class="columns is-variable is-1">
+ <div class="column is-2">
+
+<div id="sidebar" class="sidebar">
+ <ul class="">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/prerequisites">Prerequisites</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/using-and-dispose">Using and Dispose</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/reading-and-writing-files">Reading and Writing Files</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/prerequisites/streams">Streams</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/reading">Reading</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-class-records">Get Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-dynamic-records">Get Dynamic Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/get-anonymous-type-records">Get Anonymous Type Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/enumerate-class-records">Enumerate Class Records</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-by-hand">Reading by Hand</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-data-sets">Reading Multiple Data Sets</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/reading/reading-multiple-record-types">Reading Multiple Record Types</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/writing">Writing</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-class-objects">Write Class Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-dynamic-objects">Write Dynamic Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/write-anonymous-type-objects">Write Anonymous Type Objects</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/writing/appending-to-an-existing-file">Appending to an Existing File</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration">Configuration</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/configuration/class-maps">Class Maps</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-properties">Mapping Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-name">Mapping by Name</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-alternate-names">Mapping by Alternate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-duplicate-names">Mapping Duplicate Names</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/mapping-by-index">Mapping by Index</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/auto-mapping">Auto Mapping</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/ignoring-properties">Ignoring Properties</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/constant-value">Constant Value</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/type-conversion">Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/inline-type-conversion">Inline Type Conversion</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/optional-maps">Optional Maps</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/class-maps/validation">Validation</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/configuration/attributes">Attributes</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+ <a class="expander"></a>
+
+ <a href="/CsvHelper/examples/type-conversion">Type Conversion</a>
+ </span>
+
+ <ul class="is-hidden">
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/type-converter-options">Type Converter Options</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/type-conversion/custom-type-converter">Custom Type Converters</a>
+ </span>
+
+</li>
+
+</ul>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="/CsvHelper/examples/csvdatareader">CsvDataReader</a>
+ </span>
+
+</li>
+
+ <li>
+ <span>
+
+ <a href="#">Back to top</a>
+ </span>
+
+</li>
+
+</ul>
+
+</div>
+
+ </div>
+ <div class="column">
+ <div class="content">
+ <h1 id="reading-multiple-record-types">Reading Multiple Record Types</h1>
+<p>If you have CSV data where each row may be a different record type, you should be able to read based on a row type or something similar.</p>
+<h6 id="data">Data</h6>
+<pre><code>A,1,foo
+B,07a0fca2-1b1c-4e44-b1be-c2b05da5afc7,bar
+</code></pre>
+<h6 id="example">Example</h6>
+<pre><code class="language-cs">void Main()
+{
+ var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+ {
+ HasHeaderRecord = false,
+ };
+ using (var reader = new StreamReader(&quot;path\\to\\file.csv&quot;))
+ using (var csv = new CsvReader(reader, config))
+ {
+ csv.Context.RegisterClassMap&lt;FooMap&gt;();
+ csv.Context.RegisterClassMap&lt;BarMap&gt;();
+ var fooRecords = new List&lt;Foo&gt;();
+ var barRecords = new List&lt;Bar&gt;();
+ while (csv.Read())
+ {
+ switch (csv.GetField(0))
+ {
+ case &quot;A&quot;:
+ fooRecords.Add(csv.GetRecord&lt;Foo&gt;());
+ break;
+ case &quot;B&quot;:
+ barRecords.Add(csv.GetRecord&lt;Bar&gt;());
+ break;
+ default:
+ throw new InvalidOperationException(&quot;Unknown record type.&quot;);
+ }
+ }
+ }
+}
+
+public class Foo
+{
+ public int Id { get; set; }
+ public string Name { get; set; }
+}
+
+public class Bar
+{
+ public Guid Id { get; set; }
+ public string Name { get; set; }
+}
+
+public sealed class FooMap : ClassMap&lt;Foo&gt;
+{
+ public FooMap()
+ {
+ Map(m =&gt; m.Id).Index(1);
+ Map(m =&gt; m.Name).Index(2);
+ }
+}
+
+public sealed class BarMap : ClassMap&lt;Bar&gt;
+{
+ public BarMap()
+ {
+ Map(m =&gt; m.Id).Index(1);
+ Map(m =&gt; m.Name).Index(2);
+ }
+}
+</code></pre>
+
+ </div>
+ </div>
+ </div>
+ </main>
+
+ <br /><br />
+
+ <footer id="footer" class="footer">
+ <div class="has-text-centered">&copy; 2009-2022 Josh Close</div>
+</footer>
+
+
+
+ <script>
+ hljs.configure({
+ tabReplace: " "
+ });
+ hljs.initHighlightingOnLoad();
+ </script>
+ <script src="/CsvHelper/scripts/header.js"></script>
+ <script src="/CsvHelper/scripts/sidebar.js"></script>
+
+</body>
+</html>