2013-04-16 5 views
7

Potrzebuję sposób, aby utworzyć pusty IOrderedEnumerable i IEnumerable>Jak utworzyć pusty IOrderedEnumerable <DynamicNode> i IEnumerable <IGrouping <string, DynamicNode >>

// powyżej IGrouping DynamicNode zostaje pozbawiony przez stackoverflow :(

Powód: Tworzę 3 puste typy list (IOrdered, IGrouping, IEnumerable), a następnie w oparciu o inne informacje (opcje określone przez użytkownika, takie jak zamówienie według daty utworzenia lub grupy po miesiącu). Następnie wywołuję funkcję przypisującą mu listę wspomnianego typu:

(krótki opis)

//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); 
    } 
} 

Ktoś wie, jak to zrobić?

ps Gdybym nie były wystarczająco jasne, proszę dać mi znać, jak mogę ci pomóc, pomóż mi :)

Dzięki!

+2

Dlaczego tworzyć instancje w pierwszej kolejności? Dlaczego po prostu nie zadeklarować zmiennych? 'IOrderedEnumerable orderedList;'. Wygląda na to, że i tak ustawisz go jeszcze bardziej w dół. –

Odpowiedz

10

Pierwszy powinien działać jak:

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

Drugi powinien pracować z małą sztuczkę:

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

Trzeci powinny pracować z małą zmianą:

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