今天早上我正在处理一些 C# 代码,我有类似的东西:

foreach(DataRow row in MyMethod.GetDataTable().Rows) {
//do something
}

因此,由于我对语言框架没有完全了解,我想知道 GetDataTable() 是否在每次迭代完成时都被调用,或者它是否只被调用一次并且结果数据(将是 Rows)保存在内存来循环遍历它。无论如何,我声明了一个新集合来保存它并从那里开始工作......

我添加了一个新变量,所以我做了:
DataRowCollection rowCollection = MyMethod.GetDataTable().Rows;
foreach(DataRow row in rowCollection) {
//do something
}

但我不太确定这是否有必要。

提前致谢。

最佳答案

不用担心它仅在内部执行一次GetDataTable()即可从DataRowCollection中获取枚举数对象,然后在每次循环运行时都从中获取一个新项。

10-07 20:11