Mam podchwytliwe pytanie. Szukam najbardziej zwięzły, hackiest drodze osiągnięcia następujących:Grupa alfabetyczna w Linq z niespodzianką
query = (from book in library.books.OrderBy(x=>x.title)
group book by
new { title = book.title[0].ToString(), yadiyada="" });
wyniku której to wszystkie książki w bibliotece pogrupowane według pierwszej litery. Yadiyada
jest, ponieważ mój obiekt grupy nie jest prosty ciąg, ale obiekt.
Zastanawiam się, czy istnieje czysty sposób LINQ tak, aby grupa była "A", "B", "C", ... "Z", ale wszystkie inne należą do jednego grupowanie o nazwie "123! @ #".
Innymi słowy, chcę tylko jedno zgrupowanie dla wszystkich znaków innych niż alfa (A-> Z + Rest).
Mogę to zrobić na wiele sposobów, jeśli otrzymam pełną informację (obecnie po prostu dokonuję połączenia dwóch zdań Linq), ale nie jest to celem tego pytania. Zastanawiam się, czy ktoś może wymyślić naprawdę fajny sposób robienia tego ...
Niesamowite. Właśnie tego rodzaju konstrukcji szukałem, ale nie mogłem myśleć. Dzięki! –
'char.IsLetter' nie jest obsługiwane przez linq do encji. – dotctor
Zwróć uwagę, że 'char.IsLetter' zwraca wartość true dla ponad 47000 znaków, w przeciwieństwie do mojego' HashSet', poniżej którego akceptuje tylko a-z/A-Z. To może być pożądane lub nie. –