169 похожих чатов

Всем привет. Я тупой и поэтому мне нужна ваша помощь У

меня есть IEnumerable<MyObject> у которого структура:

public class MyObject
{
public string OneId{get;set;}
public string TwoId{get;set;}
public string ThreeId{get;set:}
}

Подскажите плз как мне из IEnumerable<MyObject> получить три коллекции IEnumerable<string> в которых будут находится distinct элементы OneId, TwoId, ThreeId?
Есть ли какой-то элегантный способ кроме приведения IEnumerable<MyObject> к массиву и троих .Select?

25 ответов

16 просмотров

О, Игорь, здарова

Вийобуватись в про.нет не тупий а зробити селект.дістінк то зразу отупів?

Ihor-Volokhovych Автор вопроса

Мне кажется не получится получить сразу 3 коллекции отдельных с distinct, нужно каждую отдельно

Ihor-Volokhovych Автор вопроса

.GroupBy может, чисто разбить на группы

один форич і в ньому в три хешсета додаєш кожен з пропів %)

Volodymyr Lyshenko
може погратися з Set і Aggregate ?

Посмотрел перегрузки и не вижу возможности Тут же прикол в том что там отдельно будет: 1) distinct one ids 2) distinct two ids 3) distinct three ids Значения могут быть абсолютно не взаимосвязанными

Vova Lantsov 🇺🇦
Посмотрел перегрузки и не вижу возможности Тут же ...

так я не дуже зрозумів задачу, думав так і треба

Vova Lantsov 🇺🇦
Посмотрел перегрузки и не вижу возможности Тут же ...

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

Volodymyr Lyshenko
так я не дуже зрозумів задачу, думав так і треба

задача легка як дерев'яні двері: йому треба замість колекції об'єктів, зробити три колекції відповідно до назви пропертів об'єкта

Да

Вова Зарудний
задача легка як дерев'яні двері: йому треба заміст...

не понятно дістінкт до кожної окремої коллекції чи між всіма ними

foreach (var obj in objects) { oneIds.Push(obj.OneId); twoIds.Push(obj.TwoId); .... }

Ты хочешь сделать IEnumerable<(first, second, third)> -> (IEnumerable<first>, IEnumerable<second>, IEnumerable<third>) ?

Andrew
Ты хочешь сделать IEnumerable<(first, second, thir...

кстати да, можно же ф шапр подключить

*елегантно* то без снепшоту проміжних даних в тебе варіантів мало окрім стандартних IEnumerable<T> is T[], List<T>, etc. як альтернативний варіант руками зробити імперативну імплементацію але імхо воно того не варте

IMHO, не треба паралелити 3 ітерації там, де можна в одну. я б одним з двох варіантів https://shorturl.at/mQW39 написав, якщо конче необхідно в одну ітерацію, або б написав, як пропонував @seclerp (посилання на sharplab, якщо що)

Oleksii Zaichenko
IMHO, не треба паралелити 3 ітерації там, де можна...

Оба варианта довольно смешные (хотя уже не неверные)

Через рефлексию, не?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта