в каком порядке вытыскивает foreach
От: vadi  
Дата: 23.01.07 14:26
Оценка:
Суть вопроса в следующем
Есть
 List<TClass> _list


Добавяляю к него элементы

 _list.Add(new TClass("aaa"));
 _list.Add(new TClass("bbb"));
 _list.Add(new TClass("cc"));
 _list.Add(new TClass("dd"));
 _list.Add(new TClass("eee"));
 _list.Add(new TClass("fff"));


Затем перебираю все это с помощью foreach.

Так вот перебор идет не в том порядке в каком элементы были добавлены в List.
Почему?? и что делать???
Re: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 23.01.07 14:49
Оценка:
Здравствуйте, vadi, Вы писали:

V>Затем перебираю все это с помощью foreach.


V>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

V>Почему?? и что делать???

using System;
using System.Collections.Generic;

namespace ConsoleApplication7
{
    class TClass
    {
        private string _value;

        public string Value
        {
            get { return _value; }
        }

        public TClass(string value)
        {
            _value = value;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            List<TClass> list = new List<TClass>();
            list.Add(new TClass("aaa"));
            list.Add(new TClass("bbb"));
            list.Add(new TClass("cc"));
            list.Add(new TClass("dd"));
            list.Add(new TClass("eee"));
            list.Add(new TClass("fff"));

            foreach (TClass t in list)
                Console.WriteLine(t.Value);
        }
    }
}


Вывод:

aaa
bbb
cc
dd
eee
fff


Доктор, что я делаю неправильно?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: в каком порядке вытыскивает foreach
От: OrSol  
Дата: 23.01.07 14:56
Оценка:
Здравствуйте, vadi, Вы писали:

V>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

V>Почему?? и что делать???


Должен выводить в порядке добавления. как альтернативу можно через for попробовать.
... << RSDN@Home 1.2.0 alpha rev. 655>>
Re[2]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 23.01.07 16:39
Оценка:
Здравствуйте, OrSol, Вы писали:

V>>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

V>>Почему?? и что делать???

OS>Должен выводить в порядке добавления. как альтернативу можно через for попробовать.


Что означает это "Должен"? К чему это относится?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 23.01.07 16:39
Оценка:
Здравствуйте, vadi, Вы писали:

V>Почему?? и что делать???


Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: в каком порядке вытыскивает foreach
От: vadi  
Дата: 23.01.07 16:43
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, vadi, Вы писали:


V>>Почему?? и что делать???


_FR>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


Почему? Это спицифика foreach?
Re[2]: в каком порядке вытыскивает foreach
От: vadi  
Дата: 23.01.07 16:45
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, vadi, Вы писали:


V>>Затем перебираю все это с помощью foreach.


V>>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

V>>Почему?? и что делать???

L>
L>using System;
L>using System.Collections.Generic;

L>namespace ConsoleApplication7
L>{
L>    class TClass
L>    {
L>        private string _value;

L>        public string Value
L>        {
L>            get { return _value; }
L>        }

L>        public TClass(string value)
L>        {
L>            _value = value;
L>        }
L>    }

L>    class Program
L>    {
L>        static void Main(string[] args)
L>        {
L>            List<TClass> list = new List<TClass>();
L>            list.Add(new TClass("aaa"));
L>            list.Add(new TClass("bbb"));
L>            list.Add(new TClass("cc"));
L>            list.Add(new TClass("dd"));
L>            list.Add(new TClass("eee"));
L>            list.Add(new TClass("fff"));

L>            foreach (TClass t in list)
L>                Console.WriteLine(t.Value);
L>        }
L>    }
L>}
L>


L>Вывод:

L>

aaa
L>bbb
L>cc
L>dd
L>eee
L>fff


L>Доктор, что я делаю неправильно?



Я пример просто так накидал.... Просто смотря какие объекты добавляются.
Re[3]: в каком порядке вытыскивает foreach
От: Niemand Австралия  
Дата: 23.01.07 16:59
Оценка:
Здравствуйте, vadi, Вы писали:

V>Здравствуйте, _FRED_, Вы писали:


_FR>>Здравствуйте, vadi, Вы писали:


V>>>Почему?? и что делать???


_FR>>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


V>Почему? Это спицифика foreach?


Потому что List<>(и foreach) использует интерфейс IEnumerator, в котором опрелены методы Reset(), bool Movenext() и object Current. А вот как его реализует разработчик класса (в т.ч. и стороннего) ни кто не знает.
If the message above is in English — means I'm wasting my work time and work computer to post here. No hard feelings
Re[3]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 23.01.07 17:07
Оценка:
Здравствуйте, vadi, Вы писали:

V>>>Почему?? и что делать???


_FR>>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


V>Почему? Это спицифика foreach?


Я поторопился немного: в стандарте определён порядок foreach для массивов (одно- и много-размерных). Специфика в том, как контейнер (тот, в котором находятся перебираемые элементы) хранит элементы. Вот пример:
  using System;
  using System.Collections.Generic;
  using System.Diagnostics;

  class Program
  {
    static void Main() {
      Stack<int> stack = new Stack<int>();
      stack.Push(3);
      stack.Push(2);
      stack.Push(1);
      foreach(object value in stack) {
        Debug.WriteLine(value);
      }//for

      SortedList<int, object> list = new SortedList<int, object>();
      list.Add(2, null);
      list.Add(3, null);
      list.Add(1, null);
      foreach(object value in list) {
        Debug.WriteLine(value);
      }//for
    }
  }

В каждом из примеров возвращаемый порядок не совпадает с порядком добавления, но является более логичным.
Из-за этого-то порядок элементов не стандартизировали на уровне языка (кроме порядка обхода массивов). Он определяется контейнером. Но в документации к List<> я не нашёл упоминания этого момента.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[4]: в каком порядке вытыскивает foreach
От: vadi  
Дата: 23.01.07 17:12
Оценка: +1
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, vadi, Вы писали:


V>>>>Почему?? и что делать???


_FR>>>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


V>>Почему? Это спицифика foreach?


_FR>Я поторопился немного: в стандарте определён порядок foreach для массивов (одно- и много-размерных). Специфика в том, как контейнер (тот, в котором находятся перебираемые элементы) хранит элементы. Вот пример:

_FR>
_FR>  using System;
_FR>  using System.Collections.Generic;
_FR>  using System.Diagnostics;

_FR>  class Program
_FR>  {
_FR>    static void Main() {
_FR>      Stack<int> stack = new Stack<int>();
_FR>      stack.Push(3);
_FR>      stack.Push(2);
_FR>      stack.Push(1);
_FR>      foreach(object value in stack) {
_FR>        Debug.WriteLine(value);
_FR>      }//for

_FR>      SortedList<int, object> list = new SortedList<int, object>();
_FR>      list.Add(2, null);
_FR>      list.Add(3, null);
_FR>      list.Add(1, null);
_FR>      foreach(object value in list) {
_FR>        Debug.WriteLine(value);
_FR>      }//for
_FR>    }
_FR>  }
_FR>

_FR>В каждом из примеров возвращаемый порядок не совпадает с порядком добавления, но является более логичным.
_FR>Из-за этого-то порядок элементов не стандартизировали на уровне языка (кроме порядка обхода массивов). Он определяется контейнером. Но в документации к List<> я не нашёл упоминания этого момента.

Ясна, спасибо....
Выходом из этого просто нужно юзать for(...)
тогда все ок получается
Re[2]: в каком порядке вытыскивает foreach
От: cvetkov  
Дата: 23.01.07 17:12
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, vadi, Вы писали:


V>>Почему?? и что делать???


_FR>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.

Кто это сказал?

Как в итераторе идут так и в foreach будет. а порядок следования в итераторе он может быть и жестко прописан.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 23.01.07 17:20
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>Как в итераторе идут так и в foreach будет. а порядок следования в итераторе он может быть и жестко прописан.


А можно посмотреть хоть на один итератор из FCL, в котором "порядок следования … жестко прописан"?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[5]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 23.01.07 17:22
Оценка:
Здравствуйте, vadi, Вы писали:

V>тогда все ок получается


А без оверквотинга — ещё лучше
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[4]: в каком порядке вытыскивает foreach
От: cvetkov  
Дата: 23.01.07 18:28
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, cvetkov, Вы писали:


C>>Как в итераторе идут так и в foreach будет. а порядок следования в итераторе он может быть и жестко прописан.


_FR>А можно посмотреть хоть на один итератор из FCL, в котором "порядок следования … жестко прописан"?

я не знаю что такое FCL но в стандартной библиотеке есть ArrayList
читать здесь

Current returns the same object until either MoveNext or Reset is called. MoveNext sets Current to the next element.

next element очевидно что имееться в виду next element of collection.

ps: да согласен в явном виде это не сказано.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: в каком порядке вытыскивает foreach
От: Chardex Россия  
Дата: 23.01.07 19:26
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


А если yield return используется?
Re[2]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 23.01.07 22:54
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach.


Подтасовочка. Речь шла не о foreach-е, а о "foreach-е для List-а".
Re[3]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 23.01.07 22:56
Оценка:
Здравствуйте, vadi, Вы писали:

L>>Доктор, что я делаю неправильно?


V>Я пример просто так накидал.... Просто смотря какие объекты добавляются.


Бред. Вне зависимости от того какие объекты добавляются, foreach возвращает их в том порядке, в котором они хранятся в List-е.
public bool MoveNext()
{
      if (this.version != this.list._version)
      {
            ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
      }
      if (this.index < this.list._size)
      {
            this.current = this.list._items[this.index];
            this.index++;
            return true;
      }
      this.index = this.list._size + 1;
      this.current = default(T);
      return false;
}


Если мы конечно говорим о List-е, а не о чем-то другом.
Re[4]: в каком порядке вытыскивает foreach
От: vadi  
Дата: 24.01.07 06:31
Оценка:
Здравствуйте, Lloyd, Вы писали:


L>Бред. Вне зависимости от того какие объекты добавляются, foreach возвращает их в том порядке, в котором они хранятся в List-е.

L>
L>public bool MoveNext()
L>{
L>      if (this.version != this.list._version)
L>      {
L>            ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
L>      }
L>      if (this.index < this.list._size)
L>      {
L>            this.current = this.list._items[this.index];
L>            this.index++;
L>            return true;
L>      }
L>      this.index = this.list._size + 1;
L>      this.current = default(T);
L>      return false;
L>}
L>


L>Если мы конечно говорим о List-е, а не о чем-то другом.


Хм... тогда какже объясниить то что у меня достается не в том порядке с помощью foreach и в том порядке с помощью for ???
Re[5]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 07:56
Оценка: +1
Здравствуйте, vadi, Вы писали:

L>>Если мы конечно говорим о List-е, а не о чем-то другом.


V>Хм... тогда какже объясниить то что у меня достается не в том порядке с помощью foreach и в том порядке с помощью for ???


Тем что ты привел не всю информацию.
Re[5]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 09:34
Оценка:
Здравствуйте, cvetkov, Вы писали:

C>я не знаю что такое FCL…


А неплохо бы http://www.google.ru/search?q=FCL+.NET

C>ps: да согласен в явном виде это не сказано.


На это я и напираю.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 09:35
Оценка:
Здравствуйте, Chardex, Вы писали:

_FR>>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach. Даже если где-то он соблюдается.


C>А если yield return используется?


Это уже реализация твоего собственного енумератора, в которой можно сделать всё, что угодно. Я же говорю о том, что в стандартной библиотеке чётко не сказано про каждый класс, который можно обходить по foreach о том, в какой последовательности он будет возвращать элементы.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 09:35
Оценка:
Здравствуйте, Lloyd, Вы писали:

_FR>>Нельзя рассчитывать на какой-либо заранее известный порядок элементов в foreach.


L>Подтасовочка. Речь шла не о foreach-е, а о "foreach-е для List-а".


И где в документации к этому классу сказано, в каком порядке он возвращает элементы, когда используется в foreach?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[4]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 09:56
Оценка: :)
Здравствуйте, _FRED_, Вы писали:

L>>Подтасовочка. Речь шла не о foreach-е, а о "foreach-е для List-а".


_FR>И где в документации к этому классу сказано, в каком порядке он возвращает элементы, когда используется в foreach?


А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 10:13
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>Подтасовочка. Речь шла не о foreach-е, а о "foreach-е для List-а".


_FR>>И где в документации к этому классу сказано, в каком порядке он возвращает элементы, когда используется в foreach?


L>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


А что ты будешь делать, если в каком либо месте в документации сказано одно, а в исходниках — другое? Всё-таки отталкиваться надо от одного источника.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[6]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 11:41
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


_FR>А что ты будешь делать, если в каком либо месте в документации сказано одно, а в исходниках — другое? Всё-таки отталкиваться надо от одного источника.


От кода, естественно. Ибо

Если на клетке слона увидишь надпись «буйвол», не верь глазам своим!

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: в каком порядке вытыскивает foreach
От: cvetkov  
Дата: 24.01.07 11:49
Оценка:
Здравствуйте, _FRED_, Вы писали:

C>>я не знаю что такое FCL…


_FR>А неплохо бы http://www.google.ru/search?q=FCL+.NET

ну теперь буду знать, я пробовал просто http://www.google.ru/search?q=FCL феерическая картинка

C>>ps: да согласен в явном виде это не сказано.


_FR>На это я и напираю.

ну вероятно они посчитали это очевидным
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 11:55
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


_FR>А что ты будешь делать, если в каком либо месте в документации сказано одно, а в исходниках — другое? Всё-таки отталкиваться надо от одного источника.


Кстати, ты так и не сказал, где в докуметации сказано, что порядок неопределен?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 12:17
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.

_FR>>А что ты будешь делать, если в каком либо месте в документации сказано одно, а в исходниках — другое? Всё-таки отталкиваться надо от одного источника.
L>Кстати, ты так и не сказал, где в докуметации сказано, что порядок неопределен?

И не собираюсь, потому что считаю, что если порядок был бы определён, то я это увидел бы в документации. Разве не так и где-то есть по-другому?
Кстати, насколько я себе представляю, использование недокументированной возможности часто называется "хаком".
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[5]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 12:24
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


Кстати, раз уж документация молчит, сформулируй своими словами этот порядок?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[5]: в каком порядке вытыскивает foreach
От: Melo  
Дата: 24.01.07 12:38
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


Прав в чем? В том, что в текущей реализации foreach для List будет возвращать элементы по порядку — да. Но, по сути, это недокументированная деталь реализации и полагаться на нее без особой необходимости — не лучший подход. Если порядок перечисления важен, то надо просто воспользоваться циклом for. В этом случае алгоритм будет действительно прозрачным.
Re[8]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 12:40
Оценка: -2
Здравствуйте, _FRED_, Вы писали:

_FR>И не собираюсь, потому что считаю, что если порядок был бы определён, то я это увидел бы в документации. Разве не так и где-то есть по-другому?

_FR>Кстати, насколько я себе представляю, использование недокументированной возможности часто называется "хаком".

Тяжело тебе, наверное. Ведь нигде в документации не сказано, что 2 + 2 = 4.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 12:40
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


_FR>Кстати, раз уж документация молчит, сформулируй своими словами этот порядок?


Зачем своими словами, когда есть код:
public bool MoveNext()
{
      if (this.version != this.list._version)
      {
            ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
      }
      if (this.index < this.list._size)
      {
            this.current = this.list._items[this.index];
            this.index++;
            return true;
      }
      this.index = this.list._size + 1;
      this.current = default(T);
      return false;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 12:44
Оценка: -1
Здравствуйте, Melo, Вы писали:

L>>А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


M>Прав в чем? В том, что в текущей реализации foreach для List будет возвращать элементы по порядку — да. Но, по сути, это недокументированная деталь реализации и полагаться на нее без особой необходимости — не лучший подход.


Это самоочевидная вещь, не нуждающаяся в документировании.

M>Если порядок перечисления важен, то надо просто воспользоваться циклом for. В этом случае алгоритм будет действительно прозрачным.


Кстати, приведи-ка этот прозрачный вариант. Очень интересно посмотреть.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 12:48
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>А где в документации сказано обратное? А в подтверждение того, что я прав я могу привести исходники List.Enumerator-а.


_FR>>Кстати, раз уж документация молчит, сформулируй своими словами этот порядок?


L>Зачем своими словами, когда есть код:


Затем, что код я и сам могу посмотреть. Ты мне скажи, как ты его понимаешь? Кстати, из приведённого тобой кода нигде не видно, что порядок элементов в this.list._items — это тот самый порядок, в котором элементы были добавлены в List<>. Скажи мне, это тот же самый порядок?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[9]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 12:50
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Тяжело тебе, наверное. Ведь нигде в документации не сказано, что 2 + 2 = 4.


И в каких же исходникак ты подсмотрел алгоритм этого выражения Уж не в ротор-ли зплез?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[8]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 13:04
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>Зачем своими словами, когда есть код:


_FR>Затем, что код я и сам могу посмотреть. Ты мне скажи, как ты его понимаешь? Кстати, из приведённого тобой кода нигде не видно, что порядок элементов в this.list._items — это тот самый порядок, в котором элементы были добавлены в List<>. Скажи мне, это тот же самый порядок?


Затем, что код я и сам могу посмотреть.

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 13:12
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>>>Зачем своими словами, когда есть код:

_FR>>Затем, что код я и сам могу посмотреть. Ты мне скажи, как ты его понимаешь? Кстати, из приведённого тобой кода нигде не видно, что порядок элементов в this.list._items — это тот самый порядок, в котором элементы были добавлены в List<>. Скажи мне, это тот же самый порядок?
L>

Затем, что код я и сам могу посмотреть.


Ты свёл меня с ума. Мне казалось, что я вёл ребёнка по пути познания, а, оказалось, он водил меня за нос вокруг слолба, …




Я не понял, как твоя цитата отвечает на мои вопросы

Ты мне скажи, как ты его понимаешь?

и

это тот же самый порядок?


… но ждать я не буду. Я улечу к звёздам, где мне самое место, в тишине и безмолвии…

... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[10]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 13:22
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>>>Зачем своими словами, когда есть код:

_FR>>>Затем, что код я и сам могу посмотреть. Ты мне скажи, как ты его понимаешь? Кстати, из приведённого тобой кода нигде не видно, что порядок элементов в this.list._items — это тот самый порядок, в котором элементы были добавлены в List<>. Скажи мне, это тот же самый порядок?
L>>

Затем, что код я и сам могу посмотреть.


_FR>


_FR>Я не понял, как твоя цитата отвечает на мои вопросы

_FR>

Ты мне скажи, как ты его понимаешь?

_FR>и
_FR>

это тот же самый порядок?

_FR>

У тебя возникли какие-то вопросы после просмотра исходников List.Add и List.Enumerator.MoveNext?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 24.01.07 13:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>У тебя возникли какие-то вопросы после просмотра исходников List.Add и List.Enumerator.MoveNext?


Нет, но

Если честь-по-чести, то я говорил совсем о другом… После твоих объяснений данный вопрос меня более не интересует. Хочется сделать так
Автор: _ks_
Дата: 24.01.07
с любым, кто упомянет слово foreach

З.Ы. Просто я не умею спорить с теми, кто не замечает мои вопросы и не отвечает на них. Лучше я умру, чем буду пытаться переубедить их в чём-то.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[11]: в каком порядке вытыскивает foreach
От: Константин Л. Франция  
Дата: 24.01.07 13:31
Оценка:
Здравствуйте, Lloyd, Вы писали:

это как стандарт с++ и реализация STL
Если на FCL есть стандарт ( ), и там ничего не указано про порядок — то порядок — implementation defined. Что значит, что на него не стоит полагаться.
Re[12]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 24.01.07 13:38
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>У тебя возникли какие-то вопросы после просмотра исходников List.Add и List.Enumerator.MoveNext?


_FR>Нет, но


_FR>Если честь-по-чести, то я говорил совсем о другом… После твоих объяснений данный вопрос меня более не интересует. Хочется сделать так
Автор: _ks_
Дата: 24.01.07
с любым, кто упомянет слово foreach


Предложи свой вариант, замену foreach-у. Очень интересно посмотреть.

_FR>З.Ы. Просто я не умею спорить с теми, кто не замечает мои вопросы и не отвечает на них.


Возможно, ты задаешь их как-то не так?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: в каком порядке вытыскивает foreach
От: GlebZ Россия  
Дата: 24.01.07 14:05
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>это как стандарт с++ и реализация STL

КЛ>Если на FCL есть стандарт ( ), и там ничего не указано про порядок — то порядок — implementation defined. Что значит, что на него не стоит полагаться.
FCL — не стандарт. Его описание — хелп по готовой системе.
Re[13]: в каком порядке вытыскивает foreach
От: Константин Л. Франция  
Дата: 24.01.07 15:20
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, Константин Л., Вы писали:


КЛ>>это как стандарт с++ и реализация STL

КЛ>>Если на FCL есть стандарт ( ), и там ничего не указано про порядок — то порядок — implementation defined. Что значит, что на него не стоит полагаться.
GZ>FCL — не стандарт. Его описание — хелп по готовой системе.

я разве это говорил?
Re[12]: в каком порядке вытыскивает foreach
От: _d_m_  
Дата: 24.01.07 21:26
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>З.Ы. Просто я не умею спорить с теми, кто не замечает мои вопросы и не отвечает на них. Лучше я умру, чем буду пытаться переубедить их в чём-то.


Йаду?
Re: в каком порядке вытыскивает foreach
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.01.07 05:58
Оценка: +1
Здравствуйте, vadi, Вы писали:

V>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.
2. Никаких требований на взаимоотношения методов Add() и GetEnumerator() стандарт не налагает
3. В частности, перебор Dictionary будет происходить вовсе не в том порядке, в котором добавляли.

V>Почему?? и что делать???

Исправлять ошибку в TClass, из-зв которой кажется, что экземаляры идут не в том порядке. Или приводить настоящий код, а не "по мотивам".
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[14]: в каком порядке вытыскивает foreach
От: GlebZ Россия  
Дата: 25.01.07 07:50
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>>>это как стандарт с++ и реализация STL

КЛ>>>Если на FCL есть стандарт ( ), и там ничего не указано про порядок — то порядок — implementation defined. Что значит, что на него не стоит полагаться.
GZ>>FCL — не стандарт. Его описание — хелп по готовой системе.
КЛ>я разве это говорил?
Нет. Но из этого следует что любой пример найденный в хелп может быть интерпретирован как стандарт, или просто считать утвержение верным если оно всегда выполняется. И соответсвенно в следующей версии может быть изменен не только порядок обхода, но и само наличие List<> — если утверждение о том что данная функциональность останется не получено из официального источника. И у меня есть такая мысль, что и List<> в след. версиях будет, и порядок обхода будет совпадать с индексированным обходом.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Re[15]: в каком порядке вытыскивает foreach
От: nikov США http://www.linkedin.com/in/nikov
Дата: 25.01.07 08:13
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>И у меня есть такая мысль, что и List<> в след. версиях будет, и порядок обхода будет совпадать с индексированным обходом.


Господа, не могу найти в документации того факта, что индексированный обход возвращает элементы в том порядке, в каком они были добавлены.
Я серьезно встревожен!
Re[2]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 10:19
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

V>>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

S>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.

Ага, щаззз. Вот пример, опровергающий это определение:
using System;
using System.Collections.Generic;
using System.Diagnostics;

class Program
{
  static void Main() {
    List<int> items = new List<int>();
    items.Add(3);
    items.Add(2);
    items.Add(1);
    items.Sort();
    for(int i = 0; i < items.Count; i++) {
      Debug.Print("items[{0}] = {1}", i, items[i]);
    }//for
  }
}


S>3. В частности, перебор Dictionary будет происходить вовсе не в том порядке, в котором добавляли.


Ага, щаззз. Вот пример, опровергающий это определение:

using System;
using System.Collections.Generic;
using System.Diagnostics;

class Program
{
  static void Main() {
    Dictionary<string, int> items = new Dictionary<string, int>();
    items.Add("A", 1);
    items.Add("B", 2);
    items.Add("C", 3);
    foreach(KeyValuePair<string, int> item in items) {
      Debug.WriteLine(item);
    }//for
  }
}


Что ж это за формулировки такие "детские", что они рушатся при ближайшем же рассмотрении?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[16]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 10:19
Оценка: +1 -1
Здравствуйте, nikov, Вы писали:

GZ>>И у меня есть такая мысль, что и List<> в след. версиях будет, и порядок обхода будет совпадать с индексированным обходом.


N>Господа, не могу найти в документации того факта, что индексированный обход возвращает элементы в том порядке, в каком они были добавлены.

N>Я серьезно встревожен!

Я тебя огорчу с удовольствием: индексированный обход класса List<> может возвращать элементы не в том порядке, в котором они были добавлены :о)) Подтверждаю примером:
using System;
using System.Collections.Generic;
using System.Diagnostics;

class Program
{
  static void Main() {
    List<int> items = new List<int>();
    items.Add(3);
    items.Add(2);
    items.Add(1);
    items.Sort();
    for(int i = 0; i < items.Count; i++) {
      Debug.Print("items[{0}] = {1}", i, items[i]);
    }//for
  }
}
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 10:25
Оценка:
Здравствуйте, _FRED_, Вы писали:

Первый пример должен быть таким:
_FR>using System;
_FR>using System.Collections.Generic;
_FR>using System.Diagnostics;

_FR>class Program
_FR>{
_FR>  static void Main() {
_FR>    List<int> items = new List<int>();
_FR>    items.Add(3);
_FR>    items.Add(2);
_FR>    items.Add(1);
_FR>    items.Sort();
_FR>    foreach(int item in items) {
_FR>      Debug.WriteLine(item);
_FR>    }//for
_FR>  }
_FR>}
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[17]: в каком порядке вытыскивает foreach
От: rameel https://github.com/rsdn/CodeJam
Дата: 25.01.07 10:29
Оценка: :)
Здравствуйте, _FRED_, Вы писали:

Так не честно, я так не играю
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[2]: в каком порядке вытыскивает foreach
От: vadi  
Дата: 25.01.07 10:37
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, vadi, Вы писали:


V>>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

S>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.
S>2. Никаких требований на взаимоотношения методов Add() и GetEnumerator() стандарт не налагает
S>3. В частности, перебор Dictionary будет происходить вовсе не в том порядке, в котором добавляли.

V>>Почему?? и что делать???

S>Исправлять ошибку в TClass, из-зв которой кажется, что экземаляры идут не в том порядке. Или приводить настоящий код, а не "по мотивам".

Я тут выяснил что foreach вытаскивает по индексу, а вот ADD у листа не понятно как этот индекс вставляет. Т.е не факт того что подряд метод ADD даст и подрят этот индекс..
Re[18]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 10:37
Оценка: +1
Здравствуйте, rameel, Вы писали:

R>Так не честно, я так не играю


И где же это запрещено
Дело в том, что, как я понимаю, многие просто тут не видят разницы между порядком добавления и порядком хранения элементов, что я и продемонстрировал.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 10:37
Оценка:
Здравствуйте, Sinclair, Вы писали:

V>>Так вот перебор идет не в том порядке в каком элементы были добавлены в List.

S>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.

Что ты понимаешь под "стандартных"? Определённых в mscorlib?
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[3]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 10:47
Оценка:
Здравствуйте, vadi, Вы писали:

V>Я тут выяснил что foreach вытаскивает по индексу, а вот ADD у листа не понятно как этот индекс вставляет. Т.е не факт того что подряд метод ADD даст и подрят этот индекс..


Это факт. При добавлении (Add) элемента он добавляется в конец List-а.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: в каком порядке вытыскивает foreach
От: vitz  
Дата: 25.01.07 10:55
Оценка:
Здравствуйте, vadi, Вы писали:

V>Я тут выяснил что foreach вытаскивает по индексу, а вот ADD у листа не понятно как этот индекс вставляет. Т.е не факт того что подряд метод ADD даст и подрят этот индекс..

Я конечно сильно извиняюсь, но толи я не понял, толь вы воду в ступе колотите (ну или колотаете)
foreach как сказали умные люди выше пользует IEnumerable и IEnumerator, так что в каком порядке IEnumerator пройдет по колекции, в таком порядке эти элементы в foreach и появятся

List<int> ls = new List<int>();
ls.Add(1);
ls.Add(2);
ls.Add(3);
foreach (int item in ls)
    Console.WriteLine(item);
// Тоже что и
IEnumerator ls_Enumerator = ls.GetEnumerator();
while(ls_Enumerator.MoveNext())
    Console.WriteLine(ls_Enumerator.Current);

// Тоже что и
IEnumerator<int> ls_int_Enumerator = ls.GetEnumerator();
while(ls_int_Enumerator.MoveNext())
    Console.WriteLine(ls_int_Enumerator.Current);


А метод Add у List добавляет элемент в конец списка тоесть Insert(item,this.count)

.NET Framework Class Library
List.Add Method
Adds an object to the end of the List.

Re[3]: в каком порядке вытыскивает foreach
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.01.07 12:22
Оценка:
Здравствуйте, _FRED_, Вы писали:
S>>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.
_FR>Что ты понимаешь под "стандартных"? Определённых в mscorlib?
Рекомендую перечитать мой пост еще раз.
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: в каком порядке вытыскивает foreach
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.01.07 12:22
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Ага, щаззз. Вот пример, опровергающий это определение:
Фигней пострадать сильно охота?
1.2.0 alpha rev. 655
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 12:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

_FR>>Ага, щаззз. Вот пример, опровергающий это определение:

S>Фигней пострадать сильно охота?

Это я фигнёй страдаю? Формальное отношение к определениям уже "фигней" называется? Здравствуйте, приехали. Моя точка зрения на эти безобразия тут
Автор: _FRED_
Дата: 25.01.07
.

Предерживаюсь же я следующей точки зрения:
При обходе набора элементов что надо знать? Индекс текущего элемента от начала? Тогда
int index = 0;
foreach(object item in container) {
  // …
  index++;
}//for

Или позиция элемента в контейнере? В таком случае (если контейнер, конечно же позволяет):
foreach(object item in container) {
  int index = container.IndexOf(item);
  // …
}//for

или же, если опять контейнер позволяет, использовать цикл for вместо foreach.

Теперь что касается добавления: какое вообще значение имеет порядок добавления элементов? Только то, что подразумевает под добавлением контейнер. И не один контейнер _не обязан_ при перечислении возвращать элементы в той же последовательности, в которой они были в него добавлены, например потому, что между добавлением и перечислением можно над контейнером "потворить чудеса".

Зачастую, енумератор по-умолчанию контейнера возвращает элементы в порядке, так сказать, хранения. Это видно хотя бы из кода, которые не сочёл за труд показать Lloyd здесь
Автор: Lloyd
Дата: 24.01.07
. Разницу между порядком добавления и порядком хранения предлагаю додумать читателю.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[4]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 13:00
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.

_FR>>Что ты понимаешь под "стандартных"? Определённых в mscorlib?
S>Рекомендую перечитать мой пост еще раз.

Перечита. И опять удивился

S>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.


Это _все_ стандартные коллекции? А как же Stack — это уже не стандартная коллекция? или не коллекция? Что я тогда должен подумать о ней, читая и веря твоему посту? Что я "страдаю фигнёй"? Ага.

А что касается CollectionBase, так в наследнике её я могу переехать OnInsert и изменять индек по своему усмотрению. Так что её место в твоём списке мне вообще не понятно.

Ну а про "порядок добавления" я уже сказал здесь
Автор: _FRED_
Дата: 25.01.07
.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[17]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 13:07
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Я тебя огорчу с удовольствием: индексированный обход класса List<> может возвращать элементы не в том порядке, в котором они были добавлены :о))


И с чем же Lloyd не согласен? Неуж-то элементы всё-таки возвращаются в порядке добавления

Или мой метод не является честным? Гхм…
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[5]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:09
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>При обходе набора элементов что надо знать? Индекс текущего элемента от начала? Тогда

_FR>
_FR>int index = 0;
_FR>foreach(object item in container) {
_FR>  // …
_FR>  index++;
_FR>}//for
_FR>

_FR>Или позиция элемента в контейнере? В таком случае (если контейнер, конечно же позволяет):
_FR>
_FR>foreach(object item in container) {
_FR>  int index = container.IndexOf(item);
_FR>  // …
_FR>}//for
_FR>

_FR>или же, если опять контейнер позволяет, использовать цикл for вместо foreach.

А позвольте поинтересоваться, в чем разница между "Индекс текущего элемента от начала" и "позиция элемента в контейнере"?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:09
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Перечита. И опять удивился


_FR>

S>1. Для всех стандартных коллекций енумератор возвращает в порядке добавления. Имеются в виду Array, List<>, ArrayList, CollectionBase.


_FR>Это _все_ стандартные коллекции? А как же Stack — это уже не стандартная коллекция? или не коллекция? Что я тогда должен подумать о ней, читая и веря твоему посту? Что я "страдаю фигнёй"? Ага.


С таким подходом, вам только какой-нить Гражданский Кодекс только и читать. Хотя и там разночтения имеются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[18]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:10
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>>Я тебя огорчу с удовольствием: индексированный обход класса List<> может возвращать элементы не в том порядке, в котором они были добавлены :о))


_FR>И с чем же Lloyd не согласен? Неуж-то элементы всё-таки возвращаются в порядке добавления


_FR>Или мой метод не является честным? Гхм…


Во-первых, где ты в первоначальном посте увидел Sort?
А во-вторых, я так и не увидел твоих вариантов, как перебирать коллекцию.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 13:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>С таким подходом, вам только какой-нить Гражданский Кодекс только и читать. Хотя и там разночтения имеются.


Ладно, мы все идём в сад :о))
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[6]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 13:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>А позвольте поинтересоваться, в чем разница между "Индекс текущего элемента от начала" и "позиция элемента в контейнере"?


Дело в том, что я говорил об абстрактных контейнерах. Так вот, для многих контейнеров (хеш-таблицы, например) порядок элементов в них обсуждать бессмысленно.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[19]: в каком порядке вытыскивает foreach
От: _FRED_ Черногория
Дата: 25.01.07 13:28
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Во-первых, где ты в первоначальном посте увидел Sort?


Нигде не видел. Но мне удалось продемонстрировать, что Ваша логика не всегда работает?

Если бы всегда всё, о чём я особо не позаботился, происходило так, как мне выгодно и как я "думал" и "имел в виду", я б был чертовски доволен :о))

L>А во-вторых, я так и не увидел твоих вариантов, как перебирать коллекцию.


Ниже
Автор: _FRED_
Дата: 25.01.07
.
... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[20]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:34
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>Во-первых, где ты в первоначальном посте увидел Sort?


_FR>Нигде не видел. Но мне удалось продемонстрировать, что Ваша логика не всегда работает?


Просто надо смотреть на обсуждение в целом, а не придираться к одному выдранному из контекста примеру.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:34
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, Lloyd, Вы писали:


L>>А позвольте поинтересоваться, в чем разница между "Индекс текущего элемента от начала" и "позиция элемента в контейнере"?


_FR>Дело в том, что я говорил об абстрактных контейнерах. Так вот, для многих контейнеров (хеш-таблицы, например) порядок элементов в них обсуждать бессмысленно.


Обсуждаем, насколько мне позволяет судить первоначальный пост, мы не абстрактный контейнер, а List.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 25.01.07 13:34
Оценка:
Здравствуйте, _FRED_, Вы писали:

L>>С таким подходом, вам только какой-нить Гражданский Кодекс только и читать. Хотя и там разночтения имеются.


_FR>Ладно, мы все идём в сад :о))


Давно пора.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: в каком порядке вытыскивает foreach
От: Аноним  
Дата: 24.01.07 05:13
Оценка: -2
потому что foreach это сакс давно пора было это понять.

PS: тема ушла в мои "любимые"
Любое удобство идет за счет мегагерцеф! : {<b>1</b>, <b>2</b>, <b>3</b>, 4, 5}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[9]: в каком порядке вытыскивает foreach
От: Аноним  
Дата: 24.01.07 13:03
Оценка:
Всё нормально выводится в порядке добавления. Если у кого "2x2=4.5", то курите свой собственный код, там косяки.
"обвинение в злостном использовании своих гражданских прав" (из реального)
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[12]: в каком порядке вытыскивает foreach
От: Аноним  
Дата: 24.01.07 13:44
Оценка:
Вечно вступлю, блин, то в ..., то в рсдновский флейм...
"обвинение в злостном использовании своих гражданских прав" (из реального)
| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[11]: в каком порядке вытыскивает foreach
От: Аноним  
Дата: 24.01.07 14:31
Оценка:
мда после ваших рассуждений меня стало тошнить от foreach еще больше
Любое удобство идет за счет мегагерцеф! : {<b>1</b>, <b>2</b>, <b>3</b>, 4, 5}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[12]: в каком порядке вытыскивает foreach
От: Аноним  
Дата: 24.01.07 15:28
Оценка:
BlackTigerAP:
Вечно вступлю, блин, то в ..., то в рсдновский флейм...
половину твоих постов о том что ты бедняжко вступил в рсдновский флейм, смотри а то rsdn тебя выловит в славном городе бобруйске
Любое удобство идет за счет мегагерцеф! : {<b>1</b>, <b>2</b>, <b>3</b>, 4, 5}


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[13]: в каком порядке вытыскивает foreach
От: Lloyd Россия  
Дата: 23.02.07 13:11
Оценка:
Здравствуйте, BlackTigerAP, Вы писали:

BTA>Вечно вступлю, блин, то в ..., то в рсдновский флейм...


Это единственное, что вам есть ответить?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.