powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка с шагом..
25 сообщений из 40, страница 1 из 2
Выборка с шагом..
    #36453510
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно сделать выборку с обьекта List по 5 записей через 10.. такое возможно?
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36453745
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
		static IEnumerable<IEnumerable<T>> Get5Skip10<T>(List<T> list)
		{
			var q = list.Select((p, index) => new { Item = p, Index = index })
				.GroupBy(p => p.Index / 15, p => p.Item)
				.Select(p => p.Take(5));

			foreach (var sublist in q)
				yield return sublist;
		}

		public static void Main()
		{
			var list = Enumerable.Range(1, 50).ToList();
			foreach (var sublist in Get5Skip10(list))
			{
				foreach (var item in sublist)
					Console.Write(item + " ");
				Console.WriteLine();
			}
			Console.ReadKey();
		}
Только не спрашивай "как это работает".
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36453918
Фотография lans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
		static IEnumerable<IEnumerable<T>> Get5Skip10<T>(List<T> list)
		{
			var q = list.Select((p, index) => new { Item = p, Index = index })
				.GroupBy(p => p.Index / 15, p => p.Item)
				.Select(p => p.Take(5));

			foreach (var sublist in q)
				yield return sublist;
		}

		public static void Main()
		{
			var list = Enumerable.Range(1, 50).ToList();
			foreach (var sublist in Get5Skip10(list))
			{
				foreach (var item in sublist)
					Console.Write(item + " ");
				Console.WriteLine();
			}
			Console.ReadKey();
		}
Только не спрашивай "как это работает".

Супер Спасибо
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36457324
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чуток покороче, да и побыстрее наверное

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
            var myList = new List<object>();
            var resList = new List<object>();
            
            for(int i=0; i<myList.Count; i++)
            {
                if (i % 15 < 5)
                    resList.Add(myList[i]);
            }
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36458804
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты замеряй. И "по 5" я так понимаю коллекциями по 5, а не одной кучей.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36458907
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуйста! Группы по 5. А скорость тут и замерять нечего. Три foreach+LINQ против одного for :D
Ты всегда бульдозером клумбы вскапываешь? ))))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var resArr = new ArrayList();
            var tList = new List<object>();

            for (int i = 0; i < myList.Count; i++)
            {
                if (i % 15 < 5)
                {
                    if (i % 15==0)
                    {
                        tList = new List<object>();
                        resArr.Add(tList);
                    }
                    tList.Add(myList[i]);
                }
            }
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459091
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anthony17,

если вдуматься, то вариант зы делает тоже самое, только не так угловато.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459194
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот именно, то же самое!
НО с меньшим количеством:
1. Операций
2. Времени написания кода (денег)
3. Выполнения написанного кода
4. Поддержки кода

Под угловатостью вы имеете ввиду простоту кода? Тогда спасибо за комплимент! :)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459459
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыИ "по 5" я так понимаю коллекциями по 5, а не одной кучей.
А где это сказано в условии задачи?

P.S. Ну-ка, вариант на линке, где нужно "кучей"? )
P.S2. Про скорость и краткость - думаю, лучше не спорить с anthony17.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459806
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот опять говноспорщиков набежало-то, а, прямо с утра пораньше.
авторвыборку с обьекта List по 5 записей через 10
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459867
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыВот опять говноспорщиков набежало-то, а, прямо с утра пораньше.
lansвыборку с обьекта List по 5 записей через 10
И где тут сказано про

зыколлекциями по 5, а не одной кучей.

?

Выборка с обьекта List может быть и "кучей" (как Вы выразились).

Далее.

Тем более Вы сами вначале хотели "кучу", но не смогли её написать своим гавно-линкю запросом.
Это доказывает вот этот гавнокод:

зы
Код: plaintext
1.
2.
3.
4.
5.
foreach (var sublist in Get5Skip10(list))
{
    foreach (var item in sublist) 
        Console.Write(item + " ");
    Console.WriteLine();
}


P.S. Да и, вообще, маловероятно, что ТС'у нужна выборка коллекциями. Чисто субъективное мнение. Поэтому, не нужно накручивать лапшу на уши :)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459882
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredanthony17,

если вдуматься, то вариант зы делает тоже самое, только не так угловато.

Андрюха, Вы чё, травы покурили?

1. Индексированный цикл
2. Группировка
3. Цикл выбора по 5 записей
4. Общий цикл по коллекции коллекций
5. Подцикл в общем цикле для выдирания внутренних элементов

Ужоснах
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459883
anthony17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
зы , неужели ты опустишься до оскорблений только из-за того, что твое решение всего лишь большое и медленное? :)
Поверь, не стОит! Уверен, что через пару лет и ты сможешь придумывать хорошие решения, я в это искренне верю! ))
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459912
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
...
4. Общий цикл по коллекции коллекций
5. Подцикл в общем цикле для выдирания внутренних элементов

Ужоснах
Это уже вывод на консоль, которого у Энтони17 нет.

Если сравнить 1-3 варианта зы, и лисапед Энтони с 3 массивами, лень рефлектором смотреть, но подозреваю что почти одно и тоже будет.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459925
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3-мя листами, второй вариант короче
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459938
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredЕсли сравнить 1-3 варианта зы, и лисапед Энтони с 3 массивами, лень рефлектором смотреть, но подозреваю что почти одно и тоже будет.
Какие нах 3 массива ?

Там выделен один массив - для импорта результатов.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459944
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУburedЕсли сравнить 1-3 варианта зы, и лисапед Энтони с 3 массивами, лень рефлектором смотреть, но подозреваю что почти одно и тоже будет.
Какие нах 3 массива ?

Там выделен один массив - для импорта результатов.

anthony17
Код: plaintext
1.
2.
3.
4.
5.
6.
var myList = new List<object>();
var resList = new List<object>();
            
for(int i=0; i<myList.Count; i++)
{
    if (i % 15 < 5) resList.Add(myList[i]);
}
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459952
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пля, теперь в сломанный телефон играть будем...
Боюсь слиться, но по-моему это одно и тоже:
зы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
		static IEnumerable<IEnumerable<T>> Get5Skip10<T>(List<T> list)
		{
			var q = list.Select((p, index) => new { Item = p, Index = index })
				.GroupBy(p => p.Index / 15, p => p.Item)
				.Select(p => p.Take(5));

			foreach (var sublist in q)
				yield return sublist;
		}

		//вывод на консоль

anthony17
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var resArr = new ArrayList();
            var tList = new List<object>();

            for (int i = 0; i < myList.Count; i++)
            {
                if (i % 15 < 5)
                {
                    if (i % 15==0)
                    {
                        tList = new List<object>();
                        resArr.Add(tList);
                    }
                    tList.Add(myList[i]);
                }
            }
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459979
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buredпля, теперь в сломанный телефон играть будем...
Мля...Боюсь слиться, но по-моему это одно и тоже:
зы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
		static IEnumerable<IEnumerable<T>> Get5Skip10<T>(List<T> list)
		{
			var q = list.Select((p, index) => new { Item = p, Index = index })
				.GroupBy(p => p.Index / 15, p => p.Item)
				.Select(p => p.Take(5));

			foreach (var sublist in q)
				yield return sublist;
		}

		//вывод на консоль

anthony17
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var resArr = new ArrayList();
            var tList = new List<object>();

            for (int i = 0; i < myList.Count; i++)
            {
                if (i % 15 < 5)
                {
                    if (i % 15==0)
                    {
                        tList = new List<object>();
                        resArr.Add(tList);
                    }
                    tList.Add(myList[i]);
                }
            }

Андрей, еще раз повтояю: тот код (второй) - нах не нужен. Это выдуманная байка зы :

зыИ "по 5" я так понимаю коллекциями по 5, а не одной кучей.

1. Вы хоть читайте, о чем толкуется в ветке.
2. Для решения задачи ТС'а достаточно вот этого кода:


Код: plaintext
1.
var resList = new List<object>();
for(int i=0; i<myList.Count; i++) { if (i % 15 < 5) resList.Add(myList[i]); }

Всё. Какие нах группировки и подциклы?
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459980
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУзыВот опять говноспорщиков набежало-то, а, прямо с утра пораньше.
lansвыборку с обьекта List по 5 записей через 10
И где тут сказано про

зыколлекциями по 5, а не одной кучей.

?

МСУ, ты пропустил мое "я так понимаю", вначале научись читать что пишут другие, я тебе об этом уже говорил.

МСУТем более Вы сами вначале хотели "кучу", но не смогли её написать своим гавно-линкю запросом.

Про SelectMany() слышал? Им и кучкуй любые коллекции.

МСУЭто доказывает вот этот гавнокод:
зы
Код: plaintext
1.
2.
3.
4.
5.
foreach (var sublist in Get5Skip10(list))
{
    foreach (var item in sublist) 
        Console.Write(item + " ");
    Console.WriteLine();
}


Ошибаешься, этот кусок кода ничего не доказывает. Из каких побуждений ты назвал код переборки IEnumerable<IEnumerable<T>> говнокодом? Можешь написать то же самое, но лучше?

МСУ
Чисто субъективное мнение. Поэтому, не нужно накручивать лапшу на уши :)
Ты выразил свое субъективное мнение, молодец, но чуть раньше я выразил свое, точка.
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36459984
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anthony17 зы , неужели ты опустишься до оскорблений только из-за того, что твое решение всего лишь большое и медленное? :)
Поверь, не стОит! Уверен, что через пару лет и ты сможешь придумывать хорошие решения, я в это искренне верю! ))

Это не тебе, это утренняя аллергия на МСУ, как правило он начинает бубнить первым. Я всегда говорил (вопросы переборов с условием поднимаются тут периодически), что простые циклы будут быстрее (у меня самое долгое это groupby). Но более важные вопросы которые нужно себе задать, это
1) на сколько медленнее в конкретном участке кода и насколько этот участок критичен, и
2) что ты напишешь быстрее,
3) что будет использовать меньше памяти (мы же не знаем размер исходного массива, может это перебор гигабайтного лога).

Согласись, нужно немного напрячь мозги, чтобы сообразить последовательность анализа делений и остатков (я изначально сформулировал для себя задачу как получения массива массивов), и как второй аргумен - использование IEnumerable, ведущее к отстутствию необходимости хранения промежуточного результата (на самом деле все тот же groupby у меня все портит, но мне хотелось потратить на ответ ленивому автору минуту, а не пять)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36460004
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 anthony17
зы
второй аргумен - использование IEnumerable, ведущее к отстутствию необходимости хранения промежуточного результата (на самом деле все тот же groupby у меня все портит, но мне хотелось потратить на ответ ленивому автору минуту, а не пять)
Забыл добавить, и как третий аргумент, вопрос про простую переборку был задан на форуме LINQ, а не C# (ныне винформс или что-то подобное) :)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36460018
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыМСУ, ты пропустил мое "я так понимаю", вначале научись читать что пишут другие, я тебе об этом уже говорил.
Я обратил внимание на Ваше "я так понимаю", не надо ля-ля. Я говорю о том, что "я так понимаю" - необосновано и глупо смотрится на фоне обсуждения. Ибо:

1.

ТСКак можно сделать выборку с обьекта List по 5 записей через 10.. такое возможно?

С чего вдруг появилось это "я так понимаю"? Сами дополнили задачу ТС'а? :)

2. Зачем тогда вот это гавнокод писали?

зы
Код: plaintext
1.
2.
3.
4.
foreach (var sublist in Get5Skip10(list))
{
    foreach (var item in sublist)
        Console.Write(item + " ");
}


?

То есть, в наличии явно расхождение здравой логики и действительности. "Думаем" одно - "пишем" другое. Определитесь уже.

зыПро SelectMany() слышал? Им и кучкуй любые коллекции.
К чему этот выперд? )

зыОшибаешься, этот кусок кода ничего не доказывает. Из каких побуждений ты назвал код переборки IEnumerable<IEnumerable<T>> говнокодом?
Из побуждений того, что переборки IEnumerable<IEnumerable<T>> в задаче нафиг не нужны. Выдирать зуб ломом - нехорошая практика.

зыМожешь написать то же самое, но лучше?
Лучше уже написано anthony17 - линейных цикл. Лучше его кода я не могу написать, да и вряд-ли кто сможет.
А Ваш "код" даже не катируется и близко к "нормальному" решению :)

psТы выразил свое субъективное мнение, молодец, но чуть раньше я выразил свое, точка.
Выразил или не выразил, но это не опревдывает Вашего кривейшего решения с хрен знает скольки циклами :)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36460022
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыЯ всегда говорил (вопросы переборов с условием поднимаются тут периодически), что простые циклы будут быстрее (у меня самое долгое это groupby).
Не самое долгое - а самое ненужное (как и весь "алгоритм"). Почувствуйте разницу :)
...
Рейтинг: 0 / 0
Выборка с шагом..
    #36460076
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ
С чего вдруг появилось это "я так понимаю"? Сами дополнили задачу ТС'а? :)

МСУ, поскольку у меня сейчас нет настроения, отвечу грубо - признайся ты идиот? Когда условия задачи не содержат законченной конкретики, "я так понимаю" всегда означает самостоятельное дополнение задачи для её решения. Научись понимать русскую речь.

МСУТо есть, в наличии явно расхождение здравой логики и действительности. "Думаем" одно - "пишем" другое. Определитесь уже.

МСУ, я удивлен, мне кажется кто-то сам не определися о чем он хочет поговноспорить. Что я думаю? В чем расхождение? Я говорю "коллекциями по 5", и перебираю набор коллекций. Не выспался, пелена на глазах?

МСУзыПро SelectMany() слышал? Им и кучкуй любые коллекции.
К чему этот выперд? )
Пфффф...

МСУИз побуждений того, что переборки IEnumerable<IEnumerable<T>> в задаче нафиг не нужны. Выдирать зуб ломом - нехорошая практика.

Пфффф... Замечательный ход логический рассуждений.


Вот почему я назвал кое-кого говноспорщиком. Пришел МСУ, и с упорством мальчика с соседней улицы начал что-то перетирать и доказывать, как обычно все игнорируя. МСУ, гуляй, не нужно троллить тему, я не в настроении и кормить тебя не собираюсь.
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка с шагом..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]