2011-02-04 62 views
0

可能重複:
Dynamic LINQ OrderBy創建orderBy參數動態

嗨, 我有一個數據類的IEnumerable。我想根據用戶選擇對這個集合進行排序。我如何編寫一個通用函數,將字段名稱排序&將返回一些行IEnumerable.OrderBy(f => f.fieldName)

回答

0

您可以輕鬆地做到這一點。讓我們假設我們有一個對象(類)稱爲Item爲:

public class Item 
{ 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public string Name2 { get; set; } 
} 

和這個一樣

IOrderedEnumerable<Item> orderedItems; 
switch (selection) 
{ 
    case 1: 
     orderedItems = items.OrderBy(i => i.Name); 
     break; 
    case 2: 
     orderedItems = items.OrderBy(i => i.Description); 
     break; 
    default: 
     orderedItems = items.OrderBy(i => i.Name2); 
     break; 
} 
+3

使用switch狀況的數據收集

var items = new List<Item> { new Item {Name = "Test 1", Description = "Description 1"}, new Item {Name = "Test 2", Description = "Description 2"} }; 

的一例該解決方案是demonstrably而不是OP要求的。 – 2011-02-04 23:46:39