遍历出的list再和另一个dt中遍历出来的序列号sn一一遍历
时间: 2023-08-04 21:21:07 浏览: 102
可以通过以下代码实现:
```csharp
public List<Result> TraverseDtzzAndDt(DataTable dtzz, DataTable dt)
{
List<Result> results = new List<Result>();
foreach (DataRow row in dtzz.Rows)
{
Result result = new Result();
result.Field1 = row["Field1"].ToString();
result.Field2 = Convert.ToInt32(row["Field2"]);
// 其他字段赋值...
string sn = row["SN"].ToString();
DataRow[] snRows = dt.Select($"SN = '{sn}'");
if (snRows.Length > 0)
{
result.FieldX = snRows[0]["FieldX"].ToString();
result.FieldY = Convert.ToInt32(snRows[0]["FieldY"]);
// 其他字段赋值...
}
results.Add(result);
}
return results;
}
```
在遍历 `dtzz` 的每一行数据时,先创建一个 `Result` 类型的实例,并将该行数据的字段值赋值给实例的对应属性。然后,获取该行数据中的序列号 `sn`,并使用 `dt.Select` 方法在 `dt` 中查找序列号为 `sn` 的行数据。如果查找到了,就将查找到的行数据中的字段值赋值给 `result` 实例的对应属性。最后将 `result` 实例添加到 `results` 列表中并返回。需要根据实际情况修改 `Result` 类中的字段以及字段赋值的代码。
阅读全文