2013-04-16 22 views
7

Tôi cần một cách để tạo ra một IOrderedEnumerable trống và IEnumerable>Làm thế nào để tạo ra một sản phẩm nào IOrderedEnumerable <DynamicNode> và IEnumerable <IGrouping <string, DynamicNode >>

// trên IGrouping DynamicNode bị tước ra bởi stackoverflow :(

Lý do: Tôi tạo 3 loại danh sách trống (IOrdered, IGrouping, IEnumerable) sau đó dựa trên một số thông tin khác (tùy chọn người dùng chỉ định như thứ tự bằng cách tạo ngày hoặc nhóm theo tháng), sau đó gọi hàm trên đó gán danh sách của loại đã nêu.

(đoạn mã ngắn)

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

Bất kỳ ai biết cách thực hiện?

ps Nếu tôi chưa đủ rõ ràng, vui lòng cho tôi biết cách tôi có thể giúp bạn, giúp tôi :)

Cảm ơn!

+2

Tại sao tạo các thể hiện trước? Tại sao không chỉ khai báo các biến? 'IOrderedEnumerable orderedList;'. Có vẻ như bạn đang thiết lập nó một lần nữa nữa xuống. –

Trả lời

10

Đầu tiên nên làm là:

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

Thứ hai nên làm việc với một mẹo nhỏ:

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

Thứ ba nên làm việc với một sự thay đổi nhỏ:

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