根据列表检查数据表列

本文关键字:数据表 检查 列表 | 更新日期: 2023-09-27 18:34:03

假设我有一个值列表。(目前在一张纸上,但这可能是列表或您建议的任何内容)。

如下:

Name,
Type,
Phone,
Contract, 
Remark

现在我有一个从文件导入的数据表。我需要检查数据表是否包含列表中相同的列。(所以我的数据表应该有 5 列Name, Type, Phone, Contract, Remark).我想检查无论位置如何,但如果保持列的位置更快,我更喜欢更快的解决方案。我知道你可以像这样的事情

Foreach column in datatable 
if columnname exist in list and ListSize ==Datatable.Columns.Count then 
    continue 
else 
    return false`.

但我想要一个更快的解决方案。

根据列表检查数据表列

查找值的最快方法是使用哈希表。在这种情况下,我建议HashSet<T>

var requiredColumns = new HashSet<string>
    { "Name", "Type", "Phone", "Contract", "Remark" };
if (datatable.Columns.Count != requiredColumns.Count) {
    Console.WriteLine("Number of columns does not match!");
} else {
    for (int i = 0; i < datatable.Columns.Count; i++) {
        string colname = datatable.Columns[i].Name;
        if (!requiredColumns.Contains(colname)) {
            Console.WriteLine("Unknown column [{0}]", colname);
        }
    }  
}