2013-04-16 9 views
7

Ho bisogno di un modo per creare un IOrderedEnumerable vuota e IEnumerable>Come creare un vuoto IOrderedEnumerable <DynamicNode> e IEnumerable <IGrouping <string, DynamicNode >>

// sopra IGrouping DynamicNode ottiene spogliato da StackOverflow :(

Motivo: creo 3 tipi di liste vuote (IOrdered, IGrouping, IEnumerable) quindi in base ad altre informazioni (opzioni specificate dall'utente come ordine per data di creazione o gruppo per mese) Quindi chiamo una funzione assegnandole un elenco di detto tipo

(snippet breve)

//DOESNT WORK THIS IS THE PART I NEED 
IEnumerable<DynamicNode> baseList = Enumerable.Empty<DynamicNode>(); 
IOrderedEnumerable<DynamicNode> orderedList = (IOrderedEnumerable<DynamicNode>)Enumerable.Empty<DynamicNode>(); 
IEnumerable<IGrouping<string, DynamicNode>> groupedList = (IEnumerable<IGrouping<string, DynamicNode>>)Enumerable.Empty<DynamicNode>(); 
//ABOVE DOESNT WORK THIS IS THE PART I NEED 

if (order) 
    { 
     if (group) 
    { 
     groupedList = returnGroupedOrderedList(nodeList, ascending, useFeatured, groupBy, orderBy); 
    } 
    else 
    { 
     orderedList = returnOrderedList(nodeList, ascending, useFeatured, orderBy); 
    } 
} 

Qualcuno sa come farlo?

PS Se non sono stato abbastanza chiaro per favore fatemi sapere come posso aiutare, aiutatemi :)

Grazie!

+2

Perché creare prima le istanze? Perché non solo dichiarare le variabili? 'IOrderedEnumerable orderedList;'. Sembra che tu lo stia nuovamente impostando ancora più in basso. –

risposta

10

La prima dovrebbe funzionare come è:

IEnumerable<DynamicNode> baseList = Enumerable.Empty<DynamicNode>(); 

Il secondo dovrebbe lavorare con un piccolo trucco:

IOrderedEnumerable<DynamicNode> orderedList = 
    Enumerable.Empty<DynamicNode>().OrderBy(x => 1); 

Il terzo dovrebbe funzionare con un piccolo cambiamento:

IEnumerable<IGrouping<string, DynamicNode>> groupedList = 
    Enumerable.Empty<IGrouping<string, DynamicNode>>(); 
Problemi correlati