October 2010
Intermediate to advanced
456 pages
10h 16m
English
The C# statement foreach is a convenient way to traverse an enumerable collection, but because it uses an enumerator it is also more expensive than a normal for loop.
The following code uses a trivial foreach loop:
int k = 0;
foreach loopforeach (int j in list)
{
k = j;
}
This code uses a for loop instead:
int k = 0;
int listLength = list.Count;
for (int i = 0; i < listLength; i++)
{
k = list[i];
}
For completeness, I also tested a loop that counts backwards to zero, rather than forwards to the list count:
int k = 0;
for (int i = list.Count - 1; i >= 0; i--)
{
k = list[i];
}
I used a List<int> with 1000 integers. On my machine, the results were:
|
Test |
Time taken (ticks) |
|---|---|
|
foreach—1000 List<int> accesses |
168 |
|
for 1000—List<int> accesses |
Read now
Unlock full access