从list对象转换为c#中的类

Hop*_*ope 1 c# linq

我是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?如果有人知道请帮助我.谢谢

Jon*_*Jon 6

创建一个新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)