C# 取出datatable第一行符合指定值的所有列
时间: 2023-07-12 19:24:42 浏览: 735
可以使用以下代码实现:
```csharp
string targetValue = "指定值";
DataTable dataTable = new DataTable(); // 假设已经初始化并填充了数据
List<DataColumn> matchingColumns = new List<DataColumn>();
foreach (DataColumn column in dataTable.Columns)
{
if (dataTable.Rows[0][column].ToString() == targetValue)
{
matchingColumns.Add(column);
}
}
List<object> matchingValues = new List<object>();
foreach (DataColumn column in matchingColumns)
{
matchingValues.Add(dataTable.Rows[0][column]);
}
```
这段代码与上一个问题的代码类似,不同之处在于将符合条件的列对象存入了 `matchingColumns` 列表中,然后再通过遍历符合条件的列对象,将第一行中对应列的值存入 `matchingValues` 列表中。最终,`matchingValues` 列表中就包含了第一行中所有符合条件的列的值。
相关问题
C# 读取datatable第一行值符合指定值的所有列
可以使用以下代码实现:
```csharp
string targetValue = "指定值";
DataTable dataTable = new DataTable(); // 假设已经初始化并填充了数据
List<string> matchingColumns = new List<string>();
foreach (DataColumn column in dataTable.Columns)
{
if (dataTable.Rows[0][column].ToString() == targetValue)
{
matchingColumns.Add(column.ColumnName);
}
}
```
这段代码首先定义了一个字符串变量 `targetValue`,表示要匹配的指定值。然后,假设已经初始化并填充了数据的 `dataTable`,通过遍历列的方式,找到第一行中与指定值匹配的列,并将列名存入 `matchingColumns` 列表中。最终,`matchingColumns` 列表中就包含了所有符合条件的列名。
C# 读取datatable第一行符合要求的所有列
您可以使用 LINQ 查询来读取 DataTable 中第一行符合要求的所有列。以下是一个示例代码:
```csharp
// 假设您有一个名为 dt 的 DataTable,现在您想要读取其中第一行符合要求的所有列
var query = from DataColumn column in dt.Columns
let row = dt.AsEnumerable().FirstOrDefault(r => !r.IsNull(column) && r.Field<string>(column) == "your condition")
where row != null
select row[column];
foreach (var value in query)
{
Console.WriteLine(value);
}
```
该代码将使用 LINQ 查询遍历 DataTable 中的所有列,并找到第一行符合要求的值。请注意,在 `FirstOrDefault` 方法中,我们使用了 `!r.IsNull(column)` 来确保该单元格不为空,然后使用 `r.Field<string>(column)` 来获取该单元格的值并与我们的条件进行比较。如果找到了符合条件的行,则 `row` 变量将保存该行的引用,我们可以使用 `row[column]` 来获取该列的值。最后,我们使用 `where` 子句来过滤出所有符合条件的列。