1

我有一个通用函数的一部分,只有当它的名称与数据表列之一匹配时,我才需要将属性信息复制到列表中。

    DataTable dt = new DataTable();
    .
    .
    .
//here i want only the properties that have the same name of some column in the datatable
    List<PropertyInfo> properties = typeof(T).GetProperties().ToList();

我怎样才能使用 LINQ 做到这一点?

我试过了

List<PropertyInfo> properties = typeof(T).GetProperties().Where(p=> dt.Columns.Contains(p.Name)).ToList();

但它似乎没有那样工作,因为我需要忽略双方属性名称和列名称的大小写

ToUpper() 和 ToLower() 函数的问题是有时列名既不是完全小写也不是大写

4

1 回答 1

1

尝试这样的事情:

List<PropertyInfo> properties = typeof(T).GetProperties().Where(p => dt.Columns.Cast<DataColumn>().Any(c => c.ColumnName.Equals(p.Name, StringComparison.InvariantCultureIgnoreCase))).ToList();
于 2013-10-10T03:29:44.340 回答