В C# LINQ для группы список, если условие соответствует еще не группа
У меня есть список
мое требование
Мне нужен лямбда-запрос LINQ для группировки в список, если условие удовлетворяет else do not group.
то есть при условии, что я хочу, чтобы он был сгруппирован
иначе он не должен быть сгруппирован
Я искал в сети-я получаю подробную информацию о группировке по условию, и я не мог получить и понять, как оставшийся элемент должен быть включен без группировки.
Некоторая информация, найденная в сети, предназначалась для условной группировки-но при этом те элементы, которые не удовлетворяют условиям, не включаются в результирующий список.
например
List<signal> = [{1,"a"},{40,""),{9,"a"},{52,"b"),{2,"b"},{99,""),{88,"b"}]
Ожидаемый результирующий список должен быть сгруппирован по a,b, но "" не должен быть сгруппирован
ResultantList = Group[0] ==> [{1,"a"} {9,"a"}], Group[1] ==>[ {52,"b"), {2,"b"}, {88,"b"}] , // all other items which is "" should be included without groups Group[3] [ {40,""}] Group[4][ {99,""} ]
Пожалуйста, поделитесь своим решением для этого.
Что я уже пробовал:
var resultantList = sigList .GroupBy(s => s.SignalGroup) .Select(grp => grp.ToList()) //.Where(g => !g.Any(grp => grp.SignalGroup == "")) .ToList();
С вышеизложенным как и ожидалось
1. Раскомментирование, где предложение группирует только a и b==> Все те элементы с пустым значением ( "" ) не включаются
2. Комментируя предложение where, группы A,B и строки"", чтобы сделать список с 3 группы(А,В и "").