【发布时间】:2018-05-27 10:46:20
【问题描述】:
我有这两个词典:
Dictionary<string, List<string>> dictionary_1 = new Dictionary<string, List<string>> { };
Dictionary<string, List<string>> dictionary_2 = new Dictionary<string, List<string>> { };
两个字典中的键和值都是(表和列):
DataTable old_database_columns = new DataTable();
DataTable new_database_columns = new DataTable();
list_of_table_of_old_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' ", "");
list_of_table_of_current_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' ", "");
List<string> table_list_old_database = new List<string> { };
List<string> table_list_new_database = new List<string> { };
for (i = 0; i < list_of_table_of_old_database.Rows.Count; i++) {
table_list_old_database.Add(list_of_table_of_old_database.Rows[i][0].ToString());
}
for (i = 0; i < list_of_table_of_current_database.Rows.Count; i++) {
table_list_old_database.Add(list_of_table_of_old_database.Rows[i][0].ToString());
}
for (j = 0; j < table_list_old_database.Count; j++)
{
old_database_columns = db.Select("", "", "", "", "", "", "", "", "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' and TABLE_NAME = '" + table_list_old_database[j].ToString() + "' ", "");
for (i = 0; i < old_database_columns.Rows.Count; i++)
{
old_database_columns_list.Add(old_database_columns.Rows[i][0].ToString());
}
dictionary_1.Add(table_list_old_database[j], new List<string>(old_database_columns_list));
old_database_columns_list.Clear();
}
for (j = 0; j < table_list_new_database.Count; j++)
{
new_database_columns = db.Select("", "", "", "", "", "", "", "", "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' and TABLE_NAME = '" + table_list_new_database[j].ToString() + "' ", "");
for (i = 0; i < new_database_columns.Rows.Count; i++)
{
new_database_columns_list.Add(new_database_columns.Rows[i][0].ToString());
}
dictionary_2.Add(table_list_new_database[j] , new List<string>(new_database_columns_list));
new_database_columns_list.Clear();
}
所以现在我需要检查键(表)是否相同意味着表在两个字典中都可用
我需要显示存在于字典 1 中但不存在于字典 2 中的键(表)的值(列)
【问题讨论】:
-
谁能指导我如何编写正确的条件,以便我可以排除两个字典中的值
-
您在寻找
Except和Intersect吗? -
字典一中可用而字典二中不可用的项目除外
标签: c# mysql linq dictionary collections