-1

我正在从表中获取记录列表,它工作正常,但是当我使用 orderby 时,如果我使用这样的代码,它会显示错误,它工作正常:

var Item = from itm in DB.Items
orderby itm.ExpiryDate ascending
select new Item
{

};
return Item.ToList();

以上工作正常,但我有一个条件,这就是为什么我需要使用以下给出错误的

var Item = from itm in DB.Items
select new Item
{

};

if (Order == "NearExpire")
{
return Item.OrderBy(e=>e.ExpiryDate).ToList();
}
else
{
return Item.ToList();
}

这是解决方案

var Item = (from itm in DB.Items
select new Item
{

}).ToList();

if (Order == "NearExpire")
{
return Item.OrderBy(e=>e.ExpiryDate).ToList();
}
else
{
return Item.ToList();
}
4

3 回答 3

0

你的问题不清楚。我认为您只想在order变量值变为 "NearExpire" 时添加 order by。

尝试以下。

if (Order == "NearExpire")
{ 
    return DB.Item.OrderBy(e=>e.ExpiryDate).ToList(); 
}else
{
   return DB.Item.ToList(); 
}

如果你想要降序,你可以使用以下。

return DB.Item.OrderByDescending(e=>e.ExpiryDate).ToList(); 
于 2012-10-12T10:00:24.937 回答
0

您的问题不清楚,但可能这会给您一个想法:如果您有这样的课程

class Item
{
    private string m_Order;
    private DateTime m_ExpiryDate;

    public string Order
    {
        get { return m_Order; }
        set { m_Order = value; }
    }

    public DateTime ExpiryDate
    {
        get { return m_ExpiryDate; }
        set { m_ExpiryDate = value; }
    }

}

这是您在集合中的数据

        var Items = new List<Item>();
        Items.Add(new Item() { Order = "NearExpire", ExpiryDate = DateTime.Now.AddDays(4) });
        Items.Add(new Item() { Order = "FutureExpire", ExpiryDate = DateTime.Now.AddDays(15) });
        Items.Add(new Item() { Order = "NearExpire", ExpiryDate = DateTime.Now.AddDays(3) });
        Items.Add(new Item() { Order = "Expire", ExpiryDate = DateTime.Now });

那么你可以使用这样的查询:

        var Item = (from itm in Items
                    where itm.Order == "NearExpire"
                    orderby itm.ExpiryDate ascending
                    select itm).ToList();

请注意,添加到第 3 位的对象比添加到第 1 位的对象具有过期日期,但在结果中,它们按升序排列。

于 2012-10-12T10:36:36.370 回答
0

这是解决方案。

var Item = (from itm in DB.Items
select new Item
{

}).ToList();

if (Order == "NearExpire")
{
return Item.OrderBy(e=>e.ExpiryDate).ToList();
}
else
{
return Item.ToList();
}
于 2012-10-17T14:45:06.133 回答