我从表中获取记录列表,它的工作正常,但是当我使用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();
}
答案 0 :(得分:0)
你的问题不明确。我认为只有当order
变量值变为“NearExpire”时才想添加顺序。
尝试以下方法。
if (Order == "NearExpire")
{
return DB.Item.OrderBy(e=>e.ExpiryDate).ToList();
}else
{
return DB.Item.ToList();
}
如果您想降序,可以使用以下内容。
return DB.Item.OrderByDescending(e=>e.ExpiryDate).ToList();
答案 1 :(得分: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个位置添加的对象有效,但在结果中,它们按升序排序。
答案 2 :(得分: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();
}