【发布时间】:2010-10-04 01:59:33
【问题描述】:
今天早上我正在处理一些 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() 中设置一个断点,看看它被命中了多少次。