我有一个泛型函数的一部分,我需要将属性信息复制到列表,只要它的名称与其中一个数据表列相匹配。
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()函数的问题有时候列名不是完全小写也不是大写答案 0 :(得分:1)
尝试这样的事情:
List<PropertyInfo> properties = typeof(T).GetProperties().Where(p => dt.Columns.Cast<DataColumn>().Any(c => c.ColumnName.Equals(p.Name, StringComparison.InvariantCultureIgnoreCase))).ToList();