1

我正在尝试以与添加一列相同的方式删除特定类型的列,除了使用.Columns.Remove()

我正在使用 linq 来获取道具类型,然后使用 aforEach()来删除列。我收到一个错误:

严重性代码 描述 项目文件行抑制状态错误 CS1503 参数 1:无法从 'System.Collections.Generic.IEnumerable' 转换为 'System.Data.DataColumn' Fabitrack C:\data\repositories\FABITrack\Fabitrack\Models\ReportBusinessLogic.cs 141 活跃

下面是我的代码:

//*Removing DOB from XLS file columns*/
var dob = from PropertyDescriptor props in pvPersonProps
    where props.PropertyType.Name.Contains("dob")
    select props.PropertyType;
foreach(PropertyDescriptor prop in pvPersonProps) {
    table.Columns.Remove(dob);
}

如果有人好奇我是如何添加到表格中的,这里有一些代码。

var pvPersonProps = TypeDescriptor.GetProperties(typeof(PVPersonDTO)); //get prop info from PVPersonDTO object
        var pvValResProps = TypeDescriptor.GetProperties(typeof(PVValidationDTO)); //get prop info from PVValidationDTO object

        DataTable table = new DataTable();

        /*Adding colums for Person collection*/
        foreach (PropertyDescriptor prop in pvPersonProps) //iterate prop info from PVPersonDTO object and create column structure
        {
            table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);

        }
4

1 回答 1

1

dob在您的情况下是一个集合。

因此,您可以执行以下操作:

foreach (var dobItem in dob)
{
     table.Columns.Remove(dobItem);
}

或者

var dob = (from PropertyDescriptor props in pvPersonProps
              where props.PropertyType.Name.Contains("dob")
              select props.PropertyType).First();

foreach (PropertyDescriptor prop in pvPersonProps)
{
    table.Columns.Remove(dob);
}
于 2019-04-22T14:32:25.197 回答