Sto implementando un clone LINQ in Lua, ma non è troppo rilevante qui, e ho fatto la maggior parte delle funzioni fatte (enumerabile/interrogabile, non ancora il precompilatore), ma non riesco a pensare a un modo intelligente per implementare OrderBy ThenBy.Qual è il modo intelligente di implementare OrderBy/ThenBy?
Attualmente mi sorta una volta, quindi collocare in nuove liste e quindi ordinare tali elenchi secondari ed infine unire nuovamente i risultati, ma che sembra molto dispendioso e poco elegante, sono sicuro che qualcuno ha trovato un modo intelligente per fare questo (algoritmo migliore), ma non ho idea di cosa sia. Eventuali indizi su come implementare OrderBy/Thenby in modo efficiente?
Nota: I costrutti linguistici e linguistici si spera non siano rilevanti qui, sto cercando l'algoritmo generalizzato, così come dire che un ordinamento binario può essere fatto in qualsiasi lingua.
Modifica: Attualmente sto lavorando a LINQ su Oggetto, quindi qualsiasi idea su come sarebbe stata eseguita in particolare sarebbe ottima. Sto indovinando OrberBy/ThenBy sono 2 chiamate di funzione, non una, ma potrei sbagliarmi.
Ma non dovrebbe un OrderBy/ThenBy essere fatto in due diverse chiamate di funzione? –
@Robert - almeno con Linq2SQL utilizza l'intera catena di metodi per produrre una singola espressione che realizza il risultato desiderato. A seconda che il tuo clone utilizzi l'esecuzione differita o meno, ciò potrebbe comportare il collasso di orderby/thenby in un singolo confronto. – tvanfosson
Può essere fatto solo con true e false? –