Mam dwie zmienne typu ILookup. Chciałem użyć Union lub Concat, aby połączyć ich wartości i przypisać wynik do trzeciej zmiennej tego samego typu. Zarówno Union, jak i Concat zwracają IGrouping. Konieczne jest proste przekształcenie IGrouping w ILookup, ale po prostu nie mogę tego zrobić !!! :-(IGrouping odsłania tylko klucz, więc walczę z drugim parametrem Lookup ... Każda pomoc będzie bardzo, bardzo doceniana.Konwersja LINQ z IGrouping na Lookup
8
A
Odpowiedz
9
Myślę, że najpierw trzeba spłaszczyć sekwencje, aby użyć ToLookup
:
var lookup = first.Concat(second)
.SelectMany(group => group,
(group, item) => new { Key = group.Key,
Item = item })
.ToLookup(x => x.Key, x => x.Item);
który wykorzystuje formę SelectMany
który bierze dwóch delegatów: jeden do przeliczenia pozycji w oryginalnej sekwencji do kolekcji, a co innego brać element w oryginalnej kolekcji (czyli grupy) oraz element w zwróconej kolekcji (tzn. elementy pasujące do klucza tej grupy), aby dostać się do pozycji wynikowej. Jest to najprostszy sposób (jak sądzę!) spłaszczenia grupy w sekwencję elementów z ich kluczami .
Powyższe nie zostało przetestowane, więc może być całkowicie błędne. Jest to również stosunkowo nieefektywne ... szkoda, że nie można bezpośrednio zbudować instancji o wartości Lookup
. Oczywiście możesz sam wdrożyć ILookup
.
Powiązane problemy
- 1. Konwersja Linq na XML -Dictionary
- 2. .NET: Konwersja z LINQ na SQL na Entity Framework
- 3. Jak usunąć element z obiektu IGrouping
- 4. ILookup <TKey, TVal> Przeciw IGrouping
- 5. Cosinus lookup stół z C++
- 6. Konwertuj słownik LINQ na
- 7. Get "wartość" nieruchomości w IGrouping
- 8. Konwersja VB Linq do C#
- 9. ZSH Bindkey Reverse Lookup
- 10. Filtr Django '__in' lookup
- 11. JavaScript Array Key Lookup
- 12. lookup vs. groupby
- 13. Filtr agregacji po $ lookup
- 14. Jak korzystać z adnotacji Spring @Lookup?
- 15. Konwersja wartości słownika na listę przy użyciu linq
- 16. Konwersja zapytanie SQL do LINQ w C#
- 17. Konwersja SQL do Linq LEFT JOIN z zerową
- 18. Numpy Lookup (Map lub punkt)
- 19. Konwersja z IEnumerable na listę
- 20. Konwersja z Integer, na BigInteger
- 21. Konwersja z TimeSpan na DateTime
- 22. Konwersja z Mercurial na Subversion
- 23. Konwersja Lookup <TKey, TElement> do innych struktur danych C#
- 24. JavaScript LHS i RHS Lookup
- 25. WebSphere: kontekst JNDI Lookup Awaria
- 26. C# - Konwersja uint na bajt []
- 27. Jak wykonać „Lookup” operacja na dataframes Spark podano wiele warunków
- 28. Lookup zmienne powłoki wg nazwy pośrednio
- 29. klasa, moduł, ich eigenclasses oraz metody lookup
- 30. JSTL Sesja Lookup - klucz ma Okresy