Is the order of iteration of KeyValuePair<> elements in a Dictionary<int,T>
I have a Dictionary<int,T> with a few hundred thousand elements.  I need to perform a lengthy calculation on each pair in the dictionary, so for this purpose I'd like to spawn a few worker threads and assign each thread a range of elements in the dictionary to work on.

I understand that the "order is undefined" for hashtables and that's fine - all i care about is this:

if I do this from different threads:

    int count = 0;
    foreach (KeyValuePair<int, IDataPoint> pair in pointDictionary)
    {
        if (count >= min && count <= max) // min,max different for each thread
        {
            // do stuff
        }
        ++count;
    }

will the elements in pointDictionary be visited in the same order on different threads?

If not, I'll have to break up the dictionary into N dictionaries, and pass one of each of the mini-dictionaries to the N worker threads.
Is the order of iteration of KeyValuePair<> elements in a Dictionary<int,T>
===

I have a Dictionary<int,T> with a few hundred thousand elements.  I need to perform a lengthy calculation on each pair in the dictionary, so for this purpose I'd like to spawn a few worker threads and assign each thread a range of elements in the dictionary to work on.

I understand that the "order is undefined" for hashtables and that's fine - all i care about is this:

if I do this from different threads:

    int count = 0;
    foreach (KeyValuePair<int, IDataPoint> pair in pointDictionary)
    {
        if (count >= min && count <= max) // min,max different for each thread
        {
            // do stuff
        }
        ++count;
    }

will the elements in pointDictionary be visited in the same order on different threads?

If not, I'll have to break up the dictionary into N dictionaries, and pass one of each of the mini-dictionaries to the N worker threads.