2013-11-27 81 views
-1

我有一個產品清單。列表中的每個產品都有一個類別類型。我想我的產品列表具有一定的類別順序像排序:收藏按特定順序訂購

1- Fruit, 
2- Cleaning 
3- Milk 
4- Cola 

所以我的名單應該像

productname Fruit 
productname2 Fruit 
productname Cleaning 
productname2 Cleaning 
productname Milk 
productname2 Milk 
etc 
+0

OK,那麼產品類型在哪裏?你目前的嘗試在哪裏? – Jon

+0

什麼是類別類型?它是一個枚舉? –

回答

0

如果您爲您的產品定義一個類,實現接口並定義您自己的比較邏輯。

var products = new List<Product> { new Product { Name = "B", Category = Category.Fruit }, new Product { Name = "A", Category = Category.Milk } }; 
products.OrderBy(p => p.Category); 

public class Product : IComparable<Category> 
{ 
    public string Name { get; set; } 
    public Category Category { get; set; } 

    public int CompareTo(Category other) 
    { 
     // your compare logic 
    } 
} 

public enum Category 
{ 
    Milk, 
    Fruit 
} 
1
products.OrderBy(GetProductOrder) 

哪裏得到順序是這樣

private int GetProductOrder(Product product) 
{ 
    switch(product.ProductType) 
    { 
     case "Fruit": return 1; 
     case "Cleaning": return 2; 
     // etc 
     default: return 5; 
    } 
}