powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
98 сообщений из 98, показаны все 4 страниц
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730869
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть массив

Код: c#
1.
double[] m = new double {1,2,3,4,5,6,7,8,9}



количество элементов всегда кратно трем

хотелось бы из него получить чтото вроде

Код: c#
1.
2.
3.
4.
5.
double[,] m1 = new double { {1,2,3}, {4,5,6},{7,8,9}}

//или

List<List<double>> m1 = ...



Вобщем не суть, главное чтоб разбить массив по тройкам. В цикле впринципе не сложно, но заманчиво написать это одной строкой на LINQ, ибо часто приходится.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730872
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlзаманчиво написать это одной строкой на LINQ, ибо часто приходится.
Если надо часто, то LINQ не панацея, тот еще тормоз. Напиши свою функцию разбивки и ее используй.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730874
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tiskatelsqlзаманчиво написать это одной строкой на LINQ, ибо часто приходится.
Если надо часто, то LINQ не панацея, тот еще тормоз. Напиши свою функцию разбивки и ее используй.+1
Что за линкомания все на линке писать.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730875
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlибо часто приходится.неужели это первый библиотечный метод в проекте.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730876
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕсли надо часто, то LINQ не панацея, тот еще тормоз. Напиши свою функцию разбивки и ее используй.

часто приходится писать это... я както уже привык не копипастить, хотелось бы сходу набирать. Да и любопытство, можно ли так...

а скорость значения не имеет.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730878
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlуже привык не копипастить,public static class
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730880
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iskatelsqlуже привык не копипастить,public static class

Все это здорово, но уменя считай прототипирование... Вот пришла идея - жамкаю новый проект и быстренько ее пробуем, сойдет или нет.

ЗЫ. это вы все так намекаете что так через LINQ сделать не возможно, или "синдром вахтера" включился?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730901
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Linq - волшебная страна.


Код: c#
1.
2.
3.
4.
double[] m = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 };
 int t = 3;
 var v = (Enumerable.Range(0, m.Count()).Where(m0 => m0 % t == 0))
                .Select(kk => m.Skip(kk).Take(t).ToArray());
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730907
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: c#
1.
m.Count()-1


но и без этого работает
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730910
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Petro123Dima Tпропущено...

Если надо часто, то LINQ не панацея, тот еще тормоз. Напиши свою функцию разбивки и ее используй.+1
Что за линкомания все на линке писать.
Красиво же!
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730914
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Спасибо, работает, долго вкуривать пришлось как именно... (я нуб)


Petro123Что за линкомания все на линке писать.

дануваснафиг, удобно же.

Вы за что боретесь то? за производительность? запускал пустой цикл - загрузка проца 13 поцентов... ну и где тут производительность, на сях пустой цикл все бы сожрал...
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730918
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Красиво же!гдето читал что MS не рекомендует увлекаться).
Ссыль не найду. Не знал тогда что не поверите)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730920
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlна сях пустой цикл все бы сожрал...зуб даю что внутри linq цикл)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730921
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iskatelsqlдануваснафиг.
Ну что Вы так сразу озлобились и ругаться начали? Еще и "Вахтерами" всех обозвали. Народ считает, что линку не надо пихать везде и это правильное мнение.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730923
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlдолго вкуривать пришлось как именно...вот именно.
В java тоже грешат многострочием, но оправдание что любой нуб должен код понимать.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730927
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2озлобилисьне. Он по доброму. Пятница)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730928
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Petro123iskatelsqlна сях пустой цикл все бы сожрал...зуб даю что внутри linq цикл)
Конечно. Skip(s).Take(t) - это цикл for (int i=s; i<s+t; i++)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730929
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Народ считает

ну е*ана... народ считает. те кто писал linq тоже считал... что надо написать.

отстаньте от нуба со соим холиваром!
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730930
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ясно, пятница...

я написал, что запускал пустой цикл что в теории должно съесть все ресурсы, но шарп ест только процентов 13. и заставить его есть больше мне не удалось.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730938
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iskatelsqlЯсно, пятница...

я написал, что запускал пустой цикл что в теории должно съесть все ресурсы, но шарп ест только процентов 13. и заставить его есть больше мне не удалось.
o! Для сжирания всех ресурсов запустите эти циклы в потоках, которые нужно делать в бесконечных циклах

Пользователи будут приятно удивлены уже на 1000 потоков
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730940
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlно заманчиво написать это одной строкой на LINQбоги дали нам IEnumerable<T> и методы расширения. Напиши свой.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730943
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iskatelsqlCat2Народ считает

ну е*ана... народ считает. те кто писал linq тоже считал... что надо написать.

отстаньте от нуба со соим холиваром!
Ответ дан, теперь, по традиции, можно и похоливарить
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730951
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯсно, пятница...

я написал, что запускал пустой цикл что в теории должно съесть все ресурсы, но шарп ест только процентов 13. и заставить его есть больше мне не удалось.
plink, .asparallel() - сожрет все 100%))
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730968
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый солдат aray.copy as ровняйсь смирно + yeld по потребностям даст всем просраться..
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730974
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql
Petro123public static class
внутри
Shocker.ProIEnumerable<T> и методы расширения. Напиши свой.
И ты уже не пользователь LINQ, а можно сказать соавтор
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39730977
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tiskatelsql
Petro123public static class
внутри
Shocker.ProIEnumerable<T> и методы расширения. Напиши свой.
И ты уже не пользователь LINQ, а можно сказать соавтор
+1)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39731567
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var _array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            var result = _array.Select((val, ind) => new { v = val, i = ind }).GroupBy(x => x.i / 3);
        }
    }
}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39732683
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Агнец за бортом,

Однако тут не массив массивов, а массив анонимных классов
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39732740
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Ну вот, теперь к Select -у поставь себе в план и GroupBy к изучению.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735435
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
int[] range = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

var result = range
    .Select((item, index) => new { item, index })
    .GroupBy(x => x.index / 3)
    .Select(x => x.Select(y => y.item).ToArray())
    .ToArray();
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735472
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
static class Program    {

	public static IEnumerable<int[]> By3 (this int[] a){
		for(int i = 0; i < a.Length; i += 3) {
			var r = new int[a.Length - i > 3 ? 3 : a.Length - i];
			r[0] = a[i];
			if(i+1 < a.Length) r[1] = a[i+1];
			if(i+2 < a.Length) r[2] = a[i+2];
			yield return r;
		}
	}

	static void Main(string[] args)
	{
		var arr = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
		foreach(var a in arr.By3()) {
			foreach(var i in a) Console.Write(i + " ");
			Console.WriteLine("");
		}
	}
}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735523
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
закину свои 5 копеек :)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
class Program
{
    static void Main(string[] args)
    {
        IEnumerable<int> sourceEnumerable = Enumerable.Range(0, 86);
        IEnumerable<IEnumerable<int>> split = sourceEnumerable.Splite(5);
        foreach (IEnumerable<int> bucket in split)
        {
            Console.Write("{ ");
            foreach (int i in bucket)
            {
                Console.Write($"{i:000} ");
            }
            Console.WriteLine("}");
        }
        Console.ReadKey();
    }
}

public static class EnumerableSplitter
{
    /// <summary> Разбивает перечисление на перечисления меньшего размера и возвращает пачками\корзина </summary>
    /// <param name="source">Исходное перечисление</param>
    /// <param name="bucketCapacity">Размер пачки\корзины</param>
    /// <returns>Перечисления пачек\корзин</returns>
    public static IEnumerable<IEnumerable<T>> Splite<T>(this IEnumerable<T> source, int bucketCapacity)
    {
        if (bucketCapacity < 1) throw new ArgumentOutOfRangeException(nameof(bucketCapacity));

        using (IEnumerator<T> enumerator = source.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                yield return GetBucket(enumerator, bucketCapacity);
            }
        }
    }

    private static IEnumerable<T> GetBucket<T>(IEnumerator<T> enumerator, int bucketCapacity)
    {
        int count = 0;
        do
        {
            yield return enumerator.Current;
        }
        while (++count < bucketCapacity && enumerator.MoveNext());
    }
}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735532
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlно заманчиво написать это одной строкой на LINQ,

...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735540
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомiskatelsqlно заманчиво написать это одной строкой на LINQ,


))
Для глупых задачек "поделить все на три" нету linq в одну строку.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735563
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смешно им, прост я привык хорошему...

на питоне это было бы

Код: powershell
1.
2.
3.
l = [1,2,3,4,5,6,7,8,9]

res = zip(*[iter(l)] * 3)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735570
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlсмешно им, прост я привык хорошему...Тебе предложили несколько вариантов именно на Linq и именно в одну строку. Чем ты остался недоволен?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735571
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЧем ты остался недоволен?

Кто сказал что я недоволен? Я так, пофлудить за компанию.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735572
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру, вот задачка, которая решается на Linq в одну строку
"Дан текст - слова из строчных английских букв. Напечатать все согласные буквы, которые входят только в одно слово."
На питоне получится?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735573
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlЯ так, пофлудить за компанию.ты - ТС, не получится пофлудить за компанию )
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735580
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro"Дан текст - слова из строчных английских букв. Напечатать все согласные буквы, которые входят только в одно слово."

эээ, после запятой не понял...

и у меня с циферками в основном все связано. с текстом побуквенно и не приходилось никогда, так что незнаю.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735585
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlэээ, после запятой не понял...в предложении несколько слов. Есть буквы, которые встречаются только в одном из этих слов.

iskatelsqlи у меня с циферками в основном все связано. с текстом побуквенно и не приходилось никогда, так что незнаю.А в чем разница между массивом целых чисел и массивом целых чисел, которые представляют собой коды букв?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735587
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlсмешно им, прост я привык хорошему...тогда придума1 более жизненные задачи.
Чем "А и Б сидели на трубе".
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735591
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тогда придума1 более жизненные задачи.
Ну это очень жизненная задача, каждый раз рисуя очередную ф-цию не отпускает ощющение что я делаю все зря, а вопрос можно решить одной хитрой строчкой...


Shocker.Pro ,

да фиг его знает, прост неестественность задачи смущает. студентов подобным гоняют, но в жизни я себе слабо представляю зачем стоит искать согласную букву...
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735598
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Для глупых задачек "поделить все на три" нету linq в одну строку.

Во первых - есть.
Во вторых - что хвостовские замашки?

iskatelsql
Код: python
1.
res = zip(*[iter(l)] * 3)





Нефига-се к "хорошему". Это весь питон такой?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735600
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой сакральный смысл писать код в 1 строку?
качество читаемости это не дает, производительности это, как правило, не дает, а может даже на оборот, размер файла уменьшается, но если следовать принципам Solid то он и без этого большим не будет.
я не агитирую, но мне бы хотелось понять, почему автор считает, что писать в 1 строку, это хорошо, а в 20 строк, это плохо?
с точки зрения вызова, на много будет понятнее, если будет написано

Массивы = РазбейМнеМассив(исходныйМассив, по 10 штук);
чем:
Массивы = СкройАнонимныйТип(СгруппируйЭлементыПоИндексу(ВерниЭлементыСИндексом(Исходный массив), по 10 штук))
или цепочкой
Массивы = исходныйМассив.ВерниЭлементыСИндексом.СгруппироуйЭлементы.СкройАнонимныйТип .
При этом где основной аргумент "По 10 штук"? он где то внутри выражения группировки...

и это при том, что мне нужно заранее, либо знать количество элементов, либо аллоцировать кучу массивов, или использовать группировку которая мягко говоря не быстрее, я уже молчу про то, что надо при этом еще и делить.

Если вы написали класс который решает вашу задачу, то вызов метода из этого класса будет меньше, лаконичнее и понятнее, чем цепочка Linq вызовов, которая сама по себе не как не отражает те данные, которые должна вернуть и мне как человеку незнакомому с вашим кодом придется поработать головой, чтоб понять, что вообще происходит. Сама реализация этого класса может быть на чем угодно, хоть на том же Linq. И переделать этот код будет значительно проще.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735602
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомВо вторых - что хвостовские замашки?не дай бог нам быть тут одинаковыми).
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735605
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesно мне бы хотелось понять, почему автор считает,

В - выразительность.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735606
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, лаконичнее и понятнее, чем цепочка Linq вызовов,
Мало практики.

Roman Mejtesпридется поработать головой,
Вообще не лишне.


Roman MejtesИ переделать этот код будет значительно проще.
Пишите, чтоб не переделывать. Что за мания, переделывать и переопределять?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735610
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlНу это очень жизненная задача, каждый раз рисуя очередную ф-циюобчно программист на ранг выше и ниже смотрит.
Обычно такие задачи это нижний системный уровень
iskatelsqlВобщем не суть, главное чтоб разбить массив по тройкам.
Т.е. linq не применяют, а ты его в тему вставил.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735617
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Т.е. linq не применяют, а ты его в тему вставил.

Вставил по двум причинам.

1 мне показалось что кроме как на нем это одной строчкой не сделать
2 я только изучаю, и примеры, которые ближе к моим задачам не лишние
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735625
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlкак на нем это одной строчкой не сделатькогда паровозом несколько операторов после точки это же не одна строка по смыслу. Конвейер?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735627
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlда фиг его знает, прост неестественность задачи смущает. студентов подобным гоняют, но в жизни я себе слабо представляю зачем стоит искать согласную букву...Это студенческая задача, но приемы, применимые для ее решения, близки к реальным задачам.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735631
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123iskatelsqlкак на нем это одной строчкой не сделатькогда паровозом несколько операторов после точки это же не одна строка по смыслу. Конвейер?
Я к тому что иногда циклом красивее чем куча в конвейере.
А иногда наоборот).
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735632
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомВо вторых - что хвостовские замашки?
А чувство юмора есть? :)

На самом деле у меня это психологическое чтоль... такая простая задача должна иметь простое решение, у меня включается паранойя и я судорожно начинаю перелистывать мануалы, где чего пропустил, даже забивая на основную задачу :)
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735638
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123что иногда циклом красивее
Никогда. Или докажи обратное.


iskatelsqlА чувство юмора есть? :)
Не в этом разделе. Тут с этим глухо.


iskatelsqlтакая простая задача должна иметь простое решение,
Всё правильно, так она и имеет. Несколько операторов LINQ-а.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735650
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомНикогда. Или докажи обратное.может наоборот. Ты покажешь противопоказания пихания linq во все дыры.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735662
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Я к тому что иногда циклом красивее чем куча в конвейере.

Ну а чего трендишь тогда? Показать ничего не можешь, но мнение имеешь?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735686
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C# многословен.

Без GroupBy (почти одна строчка)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var _array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };           

            var _divider = 3;

            var result = _array.Aggregate<int, IEnumerable<IEnumerable<int>>>(new int[][] { new int[] { } }, (acc, val) =>

            acc.Where(z => z.Count() == _divider).Union(new[] { (acc.Where(x => Enumerable.Range(1, _divider - 1).Contains(x.Count())).FirstOrDefault() ?? new int[] { }).Union(new[] { val }) }));
        }
    }
}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735691
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомПоказать ничего не можешь, но мнение имеешь?гениально! Мнение иметь можно только после показа)).
Продолжай. Мы слушаем.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735711
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомC# многословен.

Без GroupBy (почти одна строчка)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var _array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };           

            var _divider = 3;

            var result = _array.Aggregate<int, IEnumerable<IEnumerable<int>>>(new int[][] { new int[] { } }, (acc, val) =>

            acc.Where(z => z.Count() == _divider).Union(new[] { (acc.Where(x => Enumerable.Range(1, _divider - 1).Contains(x.Count())).FirstOrDefault() ?? new int[] { }).Union(new[] { val }) }));
        }
    }
}


выглядит не очень, Union() x 2, Contains(), Enumerable.Range(), Count(), сдается мне, работать будет это адище очень медленно.
А если, исходными данными будет не массив в памяти, а какой нибудь recordset из базы, то я даже представить себе боюсь, как это будет работать
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735727
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesвыглядит не очень,

Это обфускация. o_O
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735758
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123когда паровозом несколько операторов после точки это же не одна строка по смыслу. Конвейер?


Это "fluent API".
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735774
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatPetro123когда паровозом несколько операторов после точки это же не одна строка по смыслу. Конвейер?


Это "fluent API".неа
авторMethod chainig (цепочки) - общее название синтаксиса в ООП, в котором несколько методов вызываются один за другим.
Это API так сделано реализовано. Не декларативно.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39735779
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat,
авторМожно выделить то, что использование такого синтаксиса экономит время. Не считаю, что это стоит использовать часто. Такие классы по мере возрастания сложности становятся нечитабельными.ну а где предел сложности у всех индивидуально))
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736376
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123неа
авторMethod chainig (цепочки) - общее название синтаксиса в ООП, в котором несколько методов вызываются один за другим.
Это API так сделано реализовано. Не декларативно.

https://en.wikipedia.org/wiki/Fluent_interface
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736388
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat, ОК
Убедил))
авторСвободный интерфейс обычно реализуется путем использования цепочки методов
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736410
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Roman MejtesАгнец за бортомC# многословен.

Без GroupBy (почти одна строчка)

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var _array = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };           

            var _divider = 3;

            var result = _array.Aggregate<int, IEnumerable<IEnumerable<int>>>(new int[][] { new int[] { } }, (acc, val) =>

            acc.Where(z => z.Count() == _divider).Union(new[] { (acc.Where(x => Enumerable.Range(1, _divider - 1).Contains(x.Count())).FirstOrDefault() ?? new int[] { }).Union(new[] { val }) }));
        }
    }
}



выглядит не очень, Union() x 2, Contains(), Enumerable.Range(), Count(), сдается мне, работать будет это адище очень медленно.
А если, исходными данными будет не массив в памяти, а какой нибудь recordset из базы, то я даже представить себе боюсь, как это будет работать
Однако не выдает то, что надо. В первом измерении уже 4 каких-то объекта.

Что мне еще местный гурии посоветую изучить?

Вариации на тему со скрытым циклом (Enumerable.Range)

Код: c#
1.
2.
3.
4.
var m = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            var t = 3;
            var result0 = Enumerable.Range(0, m.Count() / t).Select(k=> m.Skip(k * t).Take(t).ToArray());
            var result1 = Enumerable.Range(0, m.Count() / t).Select(k => new double[] { m[k], m[k+1], m[k+2] });
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736415
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Агнец за бортомiskatelsqlА чувство юмора есть? :)
Не в этом разделе. Тут с этим глухо.
Нормально тут с чувством юмора. Средняя температура не отличается от других сообществ
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736423
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

result1 {1,2,3}{2,3,4}{3,4,5}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736425
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так работает:

Код: c#
1.
var result1 = Enumerable.Range(0, m.Count() / t).Select(k => new double[] { m[k*t], m[k*t + 1], m[k*t + 2] });
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736431
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlвот так работает:

Код: c#
1.
var result1 = Enumerable.Range(0, m.Count() / t).Select(k => new double[] { m[k*t], m[k*t + 1], m[k*t + 2] });

Count(), это сразу на помойку, используйте IEnumerator, не надо мучать жопу там, где в этом нет никакого смысла.
Получите IEnumerable<IEnumerable<T>> и легко сможете получить IEnumerable<T[]> без всяких count().
При минимуме затраченных ресурсов
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736432
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql
Код: c#
1.
m.Count()

m - это массив, не надо сувать Count(), где он не требуется
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736436
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes, Shocker.Pro,


Если вы обратите внимание, это не мой код... я туда только *t добавил...

кстати, Length чтоль использовать? а это "Получите IEnumerable<IEnumerable<T>> и легко сможете получить IEnumerable<T[]> без всяких count()." я вообще не понял
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736443
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlкстати, Length чтоль использовать?Ты осознаешь, что Length - это просто свойство, которое можно просто прочитать, а Count() - это метод, который получит энумератор и переберет через него все ячейки массива, чтобы узнать количество элементов, которое и так лежит в Length?

Конечно, многие задачи не имеют критичности в производительности, но не до такой же степени!
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736444
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProТы осознаешь, что Length - это просто свойство, которое можно просто прочитать

Догадывался, но конкретных подтверждений не видел, кто его знает как оно внутри устроено... Теперь будем знать
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736448
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proiskatelsqlкстати, Length чтоль использовать?Ты осознаешь, что Length - это просто свойство, которое можно просто прочитать, а Count() - это метод, который получит энумератор и переберет через него все ячейки массива, чтобы узнать количество элементов, которое и так лежит в Length?

Конечно, многие задачи не имеют критичности в производительности, но не до такой же степени!
Count() проверяет типы на ICollection<T>, IList<T> наследует ICollection<T>, по этому если делать для них, то так не будет работать, но к массивам это не относится
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736449
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql Roman Mejtes, Shocker.Pro,


Если вы обратите внимание, это не мой код... я туда только *t добавил...

кстати, Length чтоль использовать? а это "Получите IEnumerable<IEnumerable<T>> и легко сможете получить IEnumerable<T[]> без всяких count()." я вообще не понял
Уже кидал пример:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
class Program
{
    static void Main(string[] args)
    {
        IEnumerable<int> sourceEnumerable = Enumerable.Range(0, 86);
        IEnumerable<int[]> split = sourceEnumerable.Split(3).Select(p => p.ToArray());
        foreach (int[] bucket in split)
        {
            Console.Write("{ ");
            foreach (int i in bucket)
            {
                Console.Write($"{i:000} ");
            }
            Console.WriteLine("}");
        }
        Console.ReadKey();
    }
}

public static class EnumerableSplitter
{
    /// <summary> Разбивает перечисление на перечисления меньшего размера и возвращает пачками\корзина </summary>
    /// <param name="source">Исходное перечисление</param>
    /// <param name="bucketCapacity">Размер пачки\корзины</param>
    /// <returns>Перечисления пачек\корзин</returns>
    public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> source, int bucketCapacity)
    {
        if (bucketCapacity < 1) throw new ArgumentOutOfRangeException(nameof(bucketCapacity));

        using (IEnumerator<T> enumerator = source.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                yield return GetBucket(enumerator, bucketCapacity);
            }
        }
    }

    private static IEnumerable<T> GetBucket<T>(IEnumerator<T> enumerator, int bucketCapacity)
    {
        int count = 0;
        do
        {
            yield return enumerator.Current;
        }
        while (++count < bucketCapacity && enumerator.MoveNext());
    }
}
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736450
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlДогадывался, но конкретных подтверждений не видел, кто его знает как оно внутри устроено... Теперь будем знать
Нетрудно ж посмотреть исходники - https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,41ef9e39e54d0d0b
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736452
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR,

я к тому что эта Length вполне могла бы содержать тотже самый Count в get.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736460
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlя к тому что эта Length вполне могла бы содержать тотже самый Count в get.Не могла. Очевидно, Linq появился в .Net гораздо позже, чем массивы. Ну и стоило бы понимать саму суть массивов.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736464
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

я и не про Linq Count а про то что этот Length из себя представляет. некоторую переменную которая обновляется при всех операциях с массивом, замедляя эти операции, или всетаки пересчет элементов при обращении к свойству.

а если пересчет, то какая нафик разница Linq это пересчет или нет...
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736466
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsql,

Метод get свойства Array.Length имеет атрибут [MethodImpl(MethodImplOptions.InternalCall)]
https://referencesource.microsoft.com/#mscorlib/system/array.cs,42e9b7616956cf94

Т.е., вероятно, это свойство реализовано на уровне операционки, а значит, быстрей в дотнете все-равно никак не сделаешь...
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736468
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlкоторая обновляется при всех операциях с массивом,Это при каких же операциях она обновляется?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736470
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proiskatelsqlкоторая обновляется при всех операциях с массивом,Это при каких же операциях она обновляется?
Да, действительно))
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736471
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proiskatelsqlкоторая обновляется при всех операциях с массивом,Это при каких же операциях она обновляется?

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

я честн не заморачивался с этим, в моих нынешних задачах масивы пару сотен элементов, так что затраты времени на оптимизацию не окупятся. так, на будушее спросил
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736472
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proiskatelsqlкоторая обновляется при всех операциях с массивом,Это при каких же операциях она обновляется?
даже если речь идет про Count, получить значение поля, это не то же самое, что перечислить все элементы,
в первом случае сложность O(1), во втором O(n). Человек какую то хрень несет и не понятно, чего хочет, вариантов дали вагон и маленькую тележку
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736473
iskatelsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesи не понятно, чего хочет

Странно у вас с пониманием... Я чего хотел давно получил, и проехал эту задачу. А вы тут все пишете, пишете, мне уведомления приходят, вот и я чтото пишу
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736476
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlтак что затраты времени на оптимизацию не окупятся. так, на будушее спросилДа, преждевременная оптимизация - зло, но это когда ты морочишься и выдумываешь новый код, а когда нужно просто использовать свойство вместо перечисления - это не оптимизация - это просто здравый смысл.

В Linq легко накосячить, устроив, например, цикл в цикле. Или замыкание на переменную цикла. Так что нужно четко понимать, что такое перечисление и как оно работает.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736477
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskatelsqlмне уведомления приходят,Отпишишь. Зайдешь через полгодика, перечитаешь 20 страниц и норм.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736515
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prom - это массив, не надо сувать Count(), где он не требуется

LINQ в этом плане оптимизирован - в своих потрохах он распознает что это массив и при вызове Count() не будет пересчитывать всю коллекцию, а сразу вызовет Length - сам проверял когда-то по исходникам.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736524
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatShocker.Prom - это массив, не надо сувать Count(), где он не требуется

LINQ в этом плане оптимизирован - в своих потрохах он распознает что это массив и при вызове Count() не будет пересчитывать всю коллекцию, а сразу вызовет Length - сам проверял когда-то по исходникам.это круто, но мое имхо в том, что не надо бы смешивать работу с массивами и коллекциями в один api.
Все таки не бейсик у нас.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39736582
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Однако не выдает то, что надо. В первом измерении уже 4 каких-то объекта.

Каких-то объекта!


Итак (крещендо), четыре каких-то объекта:

[1,2,3]
[4,5,6]
[7,8,9]
[10]

Cat2Что мне еще местный гурии посоветую изучить?
Вот это деловой разговор.
Select и GroupBy уже осилены?
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737031
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Агнец за бортомВот это деловой разговор.
Select и GroupBy уже осилены?
Нет пока. Я по алфавиту иду. Начал изучать Aggregate
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737059
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Агнец за бортомКаких-то объекта!


Итак (крещендо), четыре каких-то объекта:

[1,2,3]
[4,5,6]
[7,8,9]
[10]

Пианиссимо, однако

4 и 5 в объекте first
6 - в объекте second. Добраться до них непросто
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737065
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
iskatelsql Cat2,

result1 {1,2,3}{2,3,4}{3,4,5}
Вот это по нашему, по-пацански!
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737087
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

Обыкновенный функциональный подход.

С GroupBy самый изящный способ.
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737096
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Агнец за бортомCat2,

Обыкновенный функциональный подход.

С GroupBy самый изящный способ.
Вы мне напишите как после этого подхода получит второй элемент первого массива, из вычисленного result
...
Рейтинг: 0 / 0
Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
    #39737117
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Агнец за бортомCat2,

Обыкновенный функциональный подход.

С GroupBy самый изящный способ.
Вы мне напишите как после этого подхода получит второй элемент первого массива, из вычисленного result

Ты это... Серьезно? o_O
...
Рейтинг: 0 / 0
98 сообщений из 98, показаны все 4 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Можно ли с помощью LINQ преобразовать / разбить массив на массивы "по три"?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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