古い.Net 1.1バージョン、同じだったらしい。 DataRowCollection.Clearの処理の中、DataTable.Clearを呼び出す。
.Net 2.0違は違います。
参考:In .Net 1.1,
DataRowCollection.Clear
calls DataTable.Clear
However, in .Net 2.0, there is a difference. If I understand the source correctly,
DataTable.Clear
will clear unattached rows (created using DataTable.NewRow
) whereas DataRowCollection.Clear won't.
The difference is in
RecordManager.Clear
(source below, from the .Net Reference Source for v3.5 SP 0); clearAll
is true only when called from DataTable.Clear
. internal void Clear(bool clearAll) {
if (clearAll) {
for(int record = 0; record < recordCapacity; ++record) {
rows[record] = null;
}
int count = table.columnCollection.Count;
for(int i = 0; i < count; ++i) {
//
DataColumn column = table.columnCollection[i];
for(int record = 0; record < recordCapacity; ++record) {
column.FreeRecord(record);
}
}
lastFreeRecord = 0;
freeRecordList.Clear();
}
else { // just clear attached rows
freeRecordList.Capacity = freeRecordList.Count + table.Rows.Count;
for(int record = 0; record < recordCapacity; ++record) {
if (rows[record]!= null && rows[record].rowID != -1) {
int tempRecord = record;
FreeRecord(ref tempRecord);
}
}
}
}
0 件のコメント:
コメントを投稿