C# 为什么两个几乎相同的数据集行为不同?

C# 为什么两个几乎相同的数据集行为不同?,c#,enums,dataset,C#,Enums,Dataset,我有两个数据集,每个数据表都在里面 数据集1: DataTable table = new DataTable(name); table.Columns.Add("ID", typeof(int)); table.Columns.Add("Customer Name",typeof(string)); table.Columns.Add("Contact Name", typeof(string)); table.C

我有两个数据集,每个数据表都在里面

数据集1:

        DataTable table = new DataTable(name);
        table.Columns.Add("ID", typeof(int));
        table.Columns.Add("Customer Name",typeof(string));
        table.Columns.Add("Contact Name", typeof(string));
        table.Columns.Add("Adress", typeof(string));
        table.Columns.Add("City", typeof(string));
        table.Columns.Add("Postal Code", typeof(string));
        table.Columns.Add("Country", typeof(string));
        string mem;
        Console.Clear();
        Console.WriteLine("| {0} | {1} | {2} | {3} | {4} | {5} |",
            table.Columns[1], table.Columns[2], table.Columns[3],
            table.Columns[4], table.Columns[5], table.Columns[6]);
        int count=1;
        do
        {
            table.Rows.Add(count, Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), 
                Console.ReadLine(), Convert.ToInt32(Console.ReadLine()), Console.ReadLine());
            Console.WriteLine("if finished, type end");
            mem=Console.ReadLine();
            count++;
        }
        while (mem != "end");

        DataSet set = new DataSet();
        set.Tables.Add(table);
数据集2:

加载数据集1

        string srch = Console.ReadLine();
        string ask = "[Customer Name] like '%"+srch+"%' OR [Contact Name] like '%"+srch+"%' OR [Adress] like '%"+srch+"%' OR [City] like '%"+srch+"%' OR [Postal Code] like '%"+srch+"%' OR [Country] like '%"+srch+"%'";
        DataRow[] foundRows = load.Tables[0].Select(ask);
        DataTable dt = new DataTable();
        table.Columns.Add("ID", typeof(int));
        table.Columns.Add("Customer Name",typeof(string));
        table.Columns.Add("Contact Name", typeof(string));
        table.Columns.Add("Adress", typeof(string));
        table.Columns.Add("City", typeof(string));
        table.Columns.Add("Postal Code", typeof(string));
        table.Columns.Add("Country", typeof(string));
        foreach (DataRow item in foundRows)
        {
            dt.Rows.Add(item.ItemArray);
        }
        DataSet set = new DataSet();
        set.Tables.Add(dt);
将数据集2发送到函数Print时,我在dtc.AsEnumerable处收到一个错误 使用数据集1,一切正常

    static void Print(DataSet load)
    {
        DataTable dtc = load.Tables[0];
        List<int> maxlenght = Enumerable.Range(0, dtc.Columns.Count)
                                        .Select(col => dtc.AsEnumerable()
                                        .Select(row => row[col]).OfType<string>()
                                        .Max(val => val.Length)).ToList();

        //rest prints DataTable on a grid in console
    }

两个数据集在结构上完全相同,这怎么可能呢?

有什么错误?您确定dtc不为空吗?数据集2是否应该用dt代替表格?范围是否需要从0到列。计数-1?dtc由表格1中的数据明确填充。请不要在注释中发布异常详细信息。更新你的问题。