меня есть 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?
О, Игорь, здарова
Вийобуватись в про.нет не тупий а зробити селект.дістінк то зразу отупів?
Привет, Сява
Мне кажется не получится получить сразу 3 коллекции отдельных с distinct, нужно каждую отдельно
дистинк на трёх полях одновременно
.GroupBy может, чисто разбить на группы
може погратися з Set і Aggregate ?
один форич і в ньому в три хешсета додаєш кожен з пропів %)
Посмотрел перегрузки и не вижу возможности Тут же прикол в том что там отдельно будет: 1) distinct one ids 2) distinct two ids 3) distinct three ids Значения могут быть абсолютно не взаимосвязанными
так я не дуже зрозумів задачу, думав так і треба
ну акамулятор на три поля доведеться робити, кожне з яких хешсет
задача легка як дерев'яні двері: йому треба замість колекції об'єктів, зробити три колекції відповідно до назви пропертів об'єкта
не понятно дістінкт до кожної окремої коллекції чи між всіма ними
foreach (var obj in objects) { oneIds.Push(obj.OneId); twoIds.Push(obj.TwoId); .... }
Ты хочешь сделать IEnumerable<(first, second, third)> -> (IEnumerable<first>, IEnumerable<second>, IEnumerable<third>) ?
кстати да, можно же ф шапр подключить
З танка по горобцях?
*елегантно* то без снепшоту проміжних даних в тебе варіантів мало окрім стандартних IEnumerable<T> is T[], List<T>, etc. як альтернативний варіант руками зробити імперативну імплементацію але імхо воно того не варте
IMHO, не треба паралелити 3 ітерації там, де можна в одну. я б одним з двох варіантів https://shorturl.at/mQW39 написав, якщо конче необхідно в одну ітерацію, або б написав, як пропонував @seclerp (посилання на sharplab, якщо що)
Оба варианта довольно смешные (хотя уже не неверные)
так скажи как надо тогда)
Через рефлексию, не?
We have a winner!
Обсуждают сегодня