C# 从DataTable中获取特定列标题名称
我需要根据值获取特定的列标题名称 例如:我正在使用下面的查询来获取列标题列表,它运行良好,并且在此基础上可以获取具有特定名称的列名,例如C# 从DataTable中获取特定列标题名称,c#,linq,datatable,C#,Linq,Datatable,我需要根据值获取特定的列标题名称 例如:我正在使用下面的查询来获取列标题列表,它运行良好,并且在此基础上可以获取具有特定名称的列名,例如部门 LINQ string[] columnNames = dt.Columns.Cast<DataColumn>() .Select(x => x.ColumnName) .ToArray(); string[]columnNames=dt
部门
LINQ
string[] columnNames = dt.Columns.Cast<DataColumn>()
.Select(x => x.ColumnName)
.ToArray();
string[]columnNames=dt.Columns.Cast()
.选择(x=>x.ColumnName)
.ToArray();
如何在此查询中添加contains或exists以获取特定列。您可以选择,然后过滤结果:
.Select(x => x.ColumnName).Where(c => c == "Department")
或先筛选,然后选择:
.Where(x => x.ColumnName == "Department").Select(c => c.ColumnName)
您可以选择然后过滤结果:
.Select(x => x.ColumnName).Where(c => c == "Department")
或先筛选,然后选择:
.Where(x => x.ColumnName == "Department").Select(c => c.ColumnName)
只需添加一个过滤器,如下所示:
string[] columnNames = dt.Columns.Cast<DataColumn>()
.Select(x => x.ColumnName)
.Where(x => x == "Department")
.ToArray();
string[]columnNames=dt.Columns.Cast()
.选择(x=>x.ColumnName)
.其中(x=>x==“部门”)
.ToArray();
只需添加一个过滤器,如下所示:
string[] columnNames = dt.Columns.Cast<DataColumn>()
.Select(x => x.ColumnName)
.Where(x => x == "Department")
.ToArray();
string[]columnNames=dt.Columns.Cast()
.选择(x=>x.ColumnName)
.其中(x=>x==“部门”)
.ToArray();
Columns
属性的类型为DataColumnCollection
,它具有索引器公共数据列此[字符串名称]
按名称获取数据列:
DataColumn dc = dt.Columns["Department"];
要按名称获取多个列,请使用带有索引器的Select()
:
List<string> names = new List<string> { "Department", "Something" };
DataColumn[] columns = names.Select(name => dt.Columns[name]).ToArray();
List name=新列表{“部门”、“某物”};
DataColumn[]columns=names.Select(name=>dt.columns[name]).ToArray();
Columns
属性的类型为DataColumnCollection
,它具有索引器公共数据列此[字符串名称]
按名称获取数据列:
DataColumn dc = dt.Columns["Department"];
要按名称获取多个列,请使用带有索引器的Select()
:
List<string> names = new List<string> { "Department", "Something" };
DataColumn[] columns = names.Select(name => dt.Columns[name]).ToArray();
List name=新列表{“部门”、“某物”};
DataColumn[]columns=names.Select(name=>dt.columns[name]).ToArray();
List containsKeys=new List();
containsKeys.Add(“SomeWildCard”);
DataTable dt=新的DataTable();
string[]columnNames=dt.Columns.Cast()
.选择(x=>x.ColumnName)
.ToArray()。其中(t=>containsKeys.Contains(t)).ToArray();
List containsKeys=new List();
containsKeys.Add(“SomeWildCard”);
DataTable dt=新的DataTable();
string[]columnNames=dt.Columns.Cast()
.选择(x=>x.ColumnName)
.ToArray()。其中(t=>containsKeys.Contains(t)).ToArray();
你的意思是像添加。其中(x=>x==“部门”)
?@DavidGx
是DataColumn
。这怎么可能?你的意思可能是。其中(x=>x.ColumnName==“Name”)
。请检查我的答案。@S.Akbari如果您将该行放在选择之后,则不会。我没有回答这个问题,因为当你已经有一个字符串时,从一个字符串列表中选择一个字符串是不清楚的,也是毫无意义的。我希望其他人也有同样的想法…@DavidG Yes,在Select
之后加上Where
,我也指出了这一点。我以为你说用Where
@S.Akbari替换Select
,对我评论的第二部分没有什么可说的?你的意思是添加。Where(x=>x==“Department”)
?@DavidGx
是DataColumn
。这怎么可能?你的意思可能是。其中(x=>x.ColumnName==“Name”)
。请检查我的答案。@S.Akbari如果您将该行放在选择之后,则不会。我没有回答这个问题,因为当你已经有一个字符串时,从一个字符串列表中选择一个字符串是不清楚的,也是毫无意义的。我希望其他人也有同样的想法…@DavidG Yes,在Select
之后加上Where
,我也指出了这一点。我以为你说用Where
@S.Akbari替换Select
,而对我评论的第二部分没有什么可说的?