Почему IList <>. Reverse () не работает как List <> (). Reverse

У меня проблема с List .Reverse () и Reverse (этот источник IEnumerable ) . Посмотрите на код:

  // Part 1
  List<int> list = new List<int> { 1, 2, 3 };

  foreach (int x in list)
    Console.Write(x);

  Console.WriteLine();

  list.Reverse();

  foreach (int x in list)
    Console.Write(x);

  Console.WriteLine();
  list.Reverse();

  // Part2
  IList<int> ilist = list;

  foreach (int x in list)
    Console.Write(x);      

  Console.WriteLine();

  ilist.Reverse();

  foreach (int x in ilist)
    Console.Write(x);

  Console.WriteLine();

  ilist.Reverse();

Мой результат:

123
321
123
123

, потому что Reverse () -Part1 равно List .Reverse () , Reverse () -Part2 - Reverse (этот IEnumerable источник) Я хочу выполнить List .Reverse () в Части 2 для IList . Как я могу это сделать?

11
задан Robaticus 12 January 2011 в 19:37
поделиться