私はテキストファイルのリストを持っています。それぞれを読んでいます。分割オプションの助けを借りて5列(IDなし)のデータテーブル(Name:tbl)を作成しています。C# - 2 DataTableの列から辞書 - 別の値
また、Column1とColumn5のみでデータテーブルを作成し、これをcolumn1のような辞書に変換することがキーとなり、column5がその値になります。
は、次のコードです:
string[] selectedColumns = new[] { "Column1", "Column5" };
DataTable dt = new DataView(tbl).ToTable(false, selectedColumns);
dict = dt.AsEnumerable().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString());
エラー:{ "すでに追加されている同じキーを持つ項目"} $例外のSystem.Exception {} System.ArgumentExceptionの
重複により発生したエラー。
dict = dt.AsEnumerable().Distinct().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString());
結果は同じである。暗黙的に型 'System.Collections.Generic.Dictionary' から 'System.Collections.Generic.IEnumerable>' に変換できませんエラー1:
dict = dt.AsEnumerable().ToDictionary<DataRow, string, string>(row => row[0].ToString(),
row => row[1].ToString()).Distinct();
はエラーをスローします。明示的な変換があります(キャストがありませんか?)
重複を避けて、別の値だけを辞書の辞書に入れることはできますか?
ありがとうございました。
dict = dt.AsEnumerable().GroupBy(x=> x.<yourColumnName>)
.Select(group => group.First());
、その後、辞書にロード:
を試してみてください
Dictionary
に変換する必要がありますが、1列内の指定された値は常に列5に同じ値を持つことが保証されていますか? – Chris