■90273 / ) |
C# LINQ IEnumerableからDataTable |
□投稿者/ Kawauso (1回)-(2019/02/21(Thu) 18:56:32)
|
分類:[C#]
お世話になります。
C#初心者です。。
IEnumerable<string[]> から DataTableへ変換したいです。。。
IEnumerable<string[]>の要素[0]には列名が入ってるイメージですが、そもそも回し方がよくわかってないので、
例題をおしえていただけますでしょうか。。
Csvから IEnumerable<string[]>にするところまではできました。。。
private void button2_Click(object sender, EventArgs e) {
string wkCsvPath = @"C\Test.csv";
// Csvデータのコンテキストを生成
IEnumerable<string[]> context = Context(wkCsvPath, ",", Encoding.GetEncoding(932));
// データテーブルへ上記のCsvデータを格納
DataTable dtHoge = new DataTable();
}
// 指定されたCSVファイルへのコンテキストを生成する
private IEnumerable<string[]> Context(
string path, string separator = ",", Encoding encoding = null) {
using (Stream stream =
new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) {
using (TextFieldParser parser =
new TextFieldParser(stream, encoding ?? Encoding.UTF8, true, false)) {
parser.TextFieldType = FieldType.Delimited;
parser.Delimiters = new[] { separator };
parser.HasFieldsEnclosedInQuotes = true;
parser.TrimWhiteSpace = true;
while (parser.EndOfData == false) {
string[] fields = parser.ReadFields();
yield return fields;
}
}
}
}
|
|