からC#のLINQのToDictionaryを使用する:これにより私は、DataTableのに返すSQLクエリ持ったDataTable
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME IN (SELECT DBTABLE FROM MY_APP_SETTINGS)
を、私は鍵がTABLE_NAMEおよびColumnInfoを持つカスタムクラスであるDictionary<string, List<ColumnInfo>>
を、作成したいですプロパティーを使用して、照会で戻される他の3つのフィールドと照合します。だから、これまで私が持っている:
IEnumerable<DataRow> rows = MyDataTable.Rows.Cast<DataRow>();
var ExistingColumns = MyDataTable.AsEnumerable().Select(dataRow => rows
.Select(row => new {
Key = row["TABLE_NAME"],
Value = new ColumnInfo(){
ColumnName = row["COLUMN_NAME"].ToString(),
DataType = row["DATA_TYPE"].ToString(),
DataLength = int.Parse(row["DATA_LENGTH"].ToString())
}
}).ToDictionary(data => data.Key, data => data.Value));
しかし、これは二つの問題があります。重複キーがあります1)、2)の値は、クラスのちょうど単一のインスタンスではなく、コレクションです。
linqを使用してこの変換を達成するにはどうすればよいですか?
ありがとうございます!
キーが重複している場合は、辞書を使用できません。 – Joe
さて、私はそれらを組み合わせようとしています。ですから、各TABLE_NAMEに対して、そのTABLE_NAMEを持つColumnInfoオブジェクトのリストが必要です。 – Paul