我有一个列表,我想要排序并显示特定日期和时间的条目。
public class Foodlist
{
public int C_ID { get; set; }
public string DateofFood{ get; set;}
public string FoodTime{ get; set;}
public string FoodDetail{ get; set;}
}
目前我使用以下代码按日期降序显示列表。日期格式与日期选择器的日期格式相同。
var datetime = foodItems.OrderBy(x => x.DateofFood).ToList();
listBox1.ItemsSource = datetime;
我想只显示特定日期的条目,比如今天。有任何想法吗?
答案 0 :(得分:2)
您可以使用.Where
过滤数据:
listBox1.ItemsSource = orderedList;
var datetime =
foodItems
.Where(x => DateTime.Parse(x.DateofFood).Date == datePickerValue.Date) //Or whatever the date time is you're after.
.OrderBy(x => x.DateofFood)
.ToList();
最好在班级中DateofFood
DateTime
,但要避免使用DateTime.Parse()
(或ParseExcact()
,如果需要)。
.Where(x => x.DateofFood.Date == datePickerValue.Date) //Or whatever the date time is you're after.
请注意使用.Date
删除DateTime
的时间组件,以便您可以在指定日期找到条目。
答案 1 :(得分:1)
您可以使用DateTime结构的Date
属性:
var result = foodItems.OrderBy(x => x.DateofFood)
.Where(x=>x.DateofFood.Date == givenDate.Date).ToList();
答案 2 :(得分:0)
你需要在类似
的地方应用谓词var datetime = foodItems.Where(x=>x.DateofFood==DateTime.Today).ToList();
答案 3 :(得分:0)
var datetime = foodItems.Where(x => x.DateofFood == DateTime.Now).ToList();
答案 4 :(得分:0)
如果您将其存储为字符串,那么将它存储为yyyyMMdd可能是更好的选择。因为这将为您提供简单的排序。
虽然您可以随时System.DateTime.UtcNow.ToString("yyyyMmMdd")
与上面的列表进行比较。