Datatable の値からヘッダーを作成するときに問題が発生しました。私はいくつかの文字列を検索するテキスト ファイルを持っています。それらを分割してDatatableに入れます。その後、いくつかのlinqコードを使用して、列「名前」をこのテーブルのヘッダーとして作成します。小さなテキスト ファイルの場合は問題なく機能しますが、少し大きなファイルを取得すると、コンパイラが MemoryOutOfExeption をスローします。コードを修正するにはどうすればよいですか?
私のコード:
DataTable evHeader00 = resAtt.Copy();
var prds1 = evHeader00.AsEnumerable() // make Name Values as header
.GroupBy(c => c["Name"])
.Where(g => !(g.Key is DBNull))
.Select(g => (string)g.Key)
.ToList();
prds1.ForEach(p => evHeader00.Columns.Add(p, typeof(string))); // Here i got MemoryOutOfExeption
foreach (var row in evHeader00.AsEnumerable())
{
if (!(row["Name"] is DBNull))
{
row[(string)row["Name"]] = row["Products"];
}
}
データテーブル 1:
ID Name Products
1 a A
2 b B
3 c C
... ... ...
結果:
ID a b c ...
1 A
2 B
3 C
... ... ... ... ...