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 --- .../reading/reading-multiple-data-sets/index.html | 514 +++++++++++++++++++++ 1 file changed, 514 insertions(+) create mode 100644 ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.html (limited to 'ThirdParty/CsvHelper-master/docs/examples/reading/reading-multiple-data-sets/index.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 @@ + + + + + + + + + + + + + + + + + + + + + + + Reading Multiple Data Sets | CsvHelper + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+

Reading Multiple Data Sets

+

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.

+
Data
+
FooId,Name
+1,foo
+
+BarId,Name
+07a0fca2-1b1c-4e44-b1be-c2b05da5afc7,bar
+
+
Example
+
void Main()
+{
+    var config = new CsvConfiguration(CultureInfo.InvariantCulture)
+	{
+		IgnoreBlankLines = false,		
+	};
+    using (var reader = new StreamReader("path\\to\\file.csv"))
+    using (var csv = new CsvReader(reader, config))
+    {
+		csv.Context.RegisterClassMap<FooMap>();
+		csv.Context.RegisterClassMap<BarMap>();
+		var fooRecords = new List<Foo>();
+		var barRecords = new List<Bar>();
+		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 "FooId":
+					fooRecords.Add(csv.GetRecord<Foo>());
+					break;
+				case "BarId":
+					barRecords.Add(csv.GetRecord<Bar>());
+					break;
+				default:
+					throw new InvalidOperationException("Unknown record type.");
+			}
+		}
+    }
+}
+
+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<Foo>
+{
+	public FooMap()
+	{
+		Map(m => m.Id).Name("FooId");
+		Map(m => m.Name);
+	}
+}
+
+public sealed class BarMap : ClassMap<Bar>
+{
+	public BarMap()
+	{
+		Map(m => m.Id).Name("BarId");
+		Map(m => m.Name);
+	}
+}
+
+ +
+
+
+
+ +

+ + + + + + + + + + + -- cgit v1.1-26-g67d0