C# 从类中获取所有datatable属性的所有列名
我有一个像下面这样的班级。它有多个DataTable类型的属性。我正在尝试动态获取所有属性并打印它们的列名C# 从类中获取所有datatable属性的所有列名,c#,.net,.net-core,C#,.net,.net Core,我有一个像下面这样的班级。它有多个DataTable类型的属性。我正在尝试动态获取所有属性并打印它们的列名 public class Example { public DataTable dt1 { get; set; } public DataTable dt2 { get; set; } ... public DataTable dtN { get; set; } } 预期产出: 表1名称:dt1 表1列:第11列、第12列、第13列 表2名称:dt2 表
public class Example
{
public DataTable dt1 { get; set; }
public DataTable dt2 { get; set; }
...
public DataTable dtN { get; set; }
}
预期产出:
表1名称:dt1表1列:第11列、第12列、第13列 表2名称:dt2
表2列:第21列、第22列、第23列 表名:dtN
表列:列N1、列N2、列N3假设您有一个类型为
Example
的对象ex
,您可以通过以下操作找到所有属性的列名:
Type exType = ex.GetType();
List<PropertyInfo> props = new List<PropertyInfo>(exType.GetProperties());
foreach(PropertyInfo prop in props) {
DataTable thisDT = (DataTable)prop.GetValue(ex);
var tableName = prop.Name;
var columnNames = new List<string>();
foreach(DataColumn column in thisDT.Columns) {
columnNames.Add(column.Name);
}
Console.WriteLine($"Table Name: {tableName}");
Console.WriteLine($"Column Names: {String.Join(",", columnNames)}");
}
Type exType=ex.GetType();
List props=新列表(exType.GetProperties());
foreach(PropertyInfo props in props){
DataTable thisDT=(DataTable)prop.GetValue(ex);
var tableName=prop.Name;
var columnNames=新列表();
foreach(thisDT.Columns中的DataColumn列){
columnNames.Add(column.Name);
}
WriteLine($“表名:{tableName}”);
Console.WriteLine($”列名:{String.Join(“,”,columnNames)});
}
注意:这假设示例中的每个属性都是数据表。如果没有,您需要在
foreach(PropertyInfo props in props)
循环中做更多的工作。假设您有一个Example
类型的对象ex
,您可以通过以下操作找到所有属性的列名:
Type exType = ex.GetType();
List<PropertyInfo> props = new List<PropertyInfo>(exType.GetProperties());
foreach(PropertyInfo prop in props) {
DataTable thisDT = (DataTable)prop.GetValue(ex);
var tableName = prop.Name;
var columnNames = new List<string>();
foreach(DataColumn column in thisDT.Columns) {
columnNames.Add(column.Name);
}
Console.WriteLine($"Table Name: {tableName}");
Console.WriteLine($"Column Names: {String.Join(",", columnNames)}");
}
Type exType=ex.GetType();
List props=新列表(exType.GetProperties());
foreach(PropertyInfo props in props){
DataTable thisDT=(DataTable)prop.GetValue(ex);
var tableName=prop.Name;
var columnNames=新列表();
foreach(thisDT.Columns中的DataColumn列){
columnNames.Add(column.Name);
}
WriteLine($“表名:{tableName}”);
Console.WriteLine($”列名:{String.Join(“,”,columnNames)});
}
注意:这假设示例中的每个属性都是数据表。如果没有,您需要在foreach(PropertyInfo props in props)
循环中做更多的工作。“我想…”这是很好的了解。介意和我们分享一下你已经走了多远吗?“我想……”很高兴知道。介意和我们分享一下你已经走了多远吗?