DataColumnCollection 不包含 Cast 的定义

Kyl*_*yle 4 c# datatable casting

为什么这个演员不起作用? table.Columns.Cast<DataColumn>()

using (SqlBulkCopy bcp = new SqlBulkCopy(conn))
{
    if (conn.State != ConnectionState.Open)
        conn.Open();

    bcp.DestinationTableName = destinationTable;

    //map the columns in the datatable to the sql table
    table.Columns.Cast<DataColumn>().ToList().ForEach(c => bcp.ColumnMappings.Add(c.ColumnName, c.ColumnName));
}
Run Code Online (Sandbox Code Playgroud)

我以为我要疯了,所以我尝试了一个测试表......同样的事情......

在此处输入图片说明

这是错误:

错误 1“System.Data.DataColumnCollection”不包含“Cast”的定义,并且最佳扩展方法重载“System.Data.EnumerableRowCollectionExtensions.Cast(System.Data.EnumerableRowCollection)”有一些无效参数

错误 2 实例参数:无法从“System.Data.DataColumnCollection”转换为“System.Data.EnumerableRowCollection”

小智 6

您必须在类中添加 System.Linq。

using System.Linq;
Run Code Online (Sandbox Code Playgroud)