C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 155 を表示中)
■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;
            }
        }
    }
}

返信 編集キー/


管理者用

- Child Tree -