Информация об изменениях

Сообщение Re: Сделать из одного массива - два от 11.11.2022 14:32

Изменено 12.11.2022 3:13 Разраб

Re: Сделать из одного массива - два
Здравствуйте, snaphold, Вы писали:

S>Есть такой массив.


S>List<Person> persons


S>Person

S> age
S> name

S>как из persons одним запросом через Linq получить 2 массива: ages (distinct age from persons), names (distinct name from persons) ?


S>то есть хотелось бы такого вида получить

S>
S>(names, ages) = persons.SelectMany(x => (n, a), n.Distinct(name), a.Distinct(a.age));
S>


UnZip

https://gist.github.com/ldub/48a4e8bf02b03b4e91b1

но раз нет в стандратной библиотеке, думаю там есть подвох
Re: Сделать из одного массива - два
Здравствуйте, snaphold, Вы писали:

S>Есть такой массив.


S>List<Person> persons


S>Person

S> age
S> name

S>как из persons одним запросом через Linq получить 2 массива: ages (distinct age from persons), names (distinct name from persons) ?


S>то есть хотелось бы такого вида получить

S>
S>(names, ages) = persons.SelectMany(x => (n, a), n.Distinct(name), a.Distinct(a.age));
S>


UnZip

https://gist.github.com/ldub/48a4e8bf02b03b4e91b1

но раз нет в стандратной библиотеке, думаю там есть подвох

UPD посмотрите реализацию F# https://fsharp.github.io/fsharp-core-docs/reference/fsharp-collections-listmodule.html#unzip