- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 
combinations.AddRange(combinations4);
            combinations.AddRange(from combination5 in combinations5
                                  where
                                      (from combination4 in combinations4
                                       where
                                           (from c4class in combination4.Classes
                                            where !combination5.Classes.Contains(c4class)
                                            select c4class).Count() == 0
                                       select combination4).Count() == 0
                                  select combination5);
                                
 Follow us!
Но как-то так, вроде бы: добавить элементы c5 из combinations5 для которых не существует такого c4 из combinations4, что все c4.classes есть в c5.classes. Что это делает - хер знает :)
Только combinations4 - это комбинации из 4ти элементов, а combinations5 - комбинации из 5х элементов.
Соответственно в процессе выяснилось, что в combinations5 болтаются все combinations4 в составе "4 оригинальных + 1 случайный".
А всё вместе - это фильтрация результатов поиска всех оптимальных команд для Zanzarah ^^
Жизненно... И ведь делаю, в каждый раз бросаю вызов себе, даже если собираюсь рефакторить потом.
> не смотря ни на что
В том числе и здравый смысл :)
http://www.youtube.com/watch?v=LwECnInKy9w
А если серьезно - linq лучше в точечной нотации