C# 根据指定行name取出该行所有值 读成二维表形式
时间: 2023-07-12 19:23:02 浏览: 52
假设您有一个DataTable对象,其中包含了多行数据,而每行数据都有一个名为“Name”的列,那么可以使用以下代码来获取指定行名对应的所有值,以二维表形式返回:
```csharp
public static object[,] GetRowValues(DataTable dataTable, string rowName)
{
DataRow row = dataTable.AsEnumerable().FirstOrDefault(r => r.Field<string>("Name") == rowName);
if (row == null)
{
return null;
}
var values = row.ItemArray;
object[,] result = new object[1, values.Length];
for (int i = 0; i < values.Length; i++)
{
result[0, i] = values[i];
}
return result;
}
```
在上面的代码中,我们首先使用LINQ查询获取指定行名对应的行数据,然后将该行数据的所有值保存到一个object数组中,最后将该数组转换为一个二维表并返回。如果指定行名对应的行数据不存在,则返回null。
使用示例:
```csharp
DataTable dataTable = new DataTable();
// 假设你已经将数据填充到dataTable中
string rowName = "John";
object[,] rowValues = GetRowValues(dataTable, rowName);
if (rowValues != null)
{
// 输出二维表
for (int i = 0; i < rowValues.GetLength(0); i++)
{
for (int j = 0; j < rowValues.GetLength(1); j++)
{
Console.Write(rowValues[i, j] + " ");
}
Console.WriteLine();
}
}
else
{
Console.WriteLine("指定行名对应的行数据不存在");
}
```
注意:上面的代码假设每行数据的所有列的数据类型都相同,如果类型不同,则需要根据需要进行类型转换。