Iterating through a dictionary in C# I am trying to get my dictionary to iterate seven times after the dateTime is found. I want to iterate through the next week of objects in my dictionary pagesInRange. I figured out how to do it, but I am sure this is not good code. I am wondering if someone could point me in the direction of what I can do to improve this code.  

I could not figure out how to iterate through the range I want, so instead I iterate through the entire dictionary and have a bunch of it statements to find the values I am looking for. Here is my code. I know I can use a switch statement to improve the code, but I wondering if there is a way given the first value to iterate over the next seven values.

Console.WriteLine("Please enter a date in the following formate MM/DD/YYYY");
string date = Console.ReadLine();
DateTime dt = Convert.ToDateTime(date);
DateTime end1 = dt.AddDays(1);
DateTime end2 = dt.AddDays(2);
DateTime end3 = dt.AddDays(3);
DateTime end4 = dt.AddDays(4);
DateTime end5 = dt.AddDays(5);
DateTime end6 = dt.AddDays(6);

int i = 0;
foreach (var pair in pagesInRange)
{
    if (pair.Key.ToString("d")==date)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    } else if (pair.Key == end1)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
    else if (pair.Key == end2)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
    else if (pair.Key == end3)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
    else if (pair.Key == end4)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
    else if (pair.Key == end5)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
    else if (pair.Key == end6)
    {
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);
    }
}
If I understand your intent:

Console.WriteLine("Please enter a date in the following formate MM/DD/YYYY");
string date = Console.ReadLine();
DateTime startRange = Convert.ToDateTime(date);
DateTime endRange = startRange.AddDays(6);

foreach (var pair in pagesInRange)
    if (pair.Key &gt;= startRange &amp;&amp; pair.Key &lt;= endRange)
        Console.WriteLine(pair.Key.ToString("d") + " " + pair.Value);


This does not take advantage of the fact that the dictionary is sorted.