我是linq和c#的新手.在这里,我面临一个问题,我必须模拟课程
public class Product
{
public int ItemID { get; private set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime AuctionEndDate { get; set; }
public int Price { get; set; }
}
public class ShoppingCart
{
public List<Product> Products { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想创建一个扩展方法,对我购物车中的所有项目进行排序.
public static ShoppingCart Sort(this ShoppingCart cart)
{
var sortedCart = from item in cart.Products
orderby item.Title ascending
select item;
return sortedCart.ToList();
}
Run Code Online (Sandbox Code Playgroud)
所以该方法不允许我返回sortedCart.ToList(),因为它包含List.我该如何退回shoppingCart?如果有人知道请帮助我.谢谢
创建一个新ShoppingCart实例并将其设置Products为刚刚生成的排序列表:
return new ShoppingCart { Products = sortedCart.ToList() };
Run Code Online (Sandbox Code Playgroud)
当然这样原来的购物车不会被分类; 这将是新的(重复)购物车.如果要对原始内容进行排序,则应使用List<T>.Sort原始产品集合而不是LINQ:
cart.Products.Sort((x,y) => x.Title.CompareTo(y.Title));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
216 次 |
| 最近记录: |