1

我有一个列表,我想对其进行排序并显示特定日期和时间的条目。

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;

我只想显示特定日期的条目,比如今天。有任何想法吗?

4

5 回答 5

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(); 

尽管避免使用(或如果需要),但在您的班级中制作DateofFooda可能会更好。DateTimeDateTime.Parse()ParseExcact()

.Where(x => x.DateofFood.Date == datePickerValue.Date) //Or whatever the date time is you're after.

请注意使用.Date删除 的时间组件,DateTime以便您可以找到给定日期的条目。

于 2012-07-06T09:27:46.377 回答
1

您可以使用DateDateTime 结构的属性:

var result = foodItems.OrderBy(x => x.DateofFood)
                      .Where(x=>x.DateofFood.Date == givenDate.Date).ToList();
于 2012-07-06T09:29:28.383 回答
0

你需要在喜欢的地方应用谓词

var datetime = foodItems.Where(x=>x.DateofFood==DateTime.Today).ToList();
于 2012-07-06T09:28:10.193 回答
0
var datetime = foodItems.Where(x => x.DateofFood == DateTime.Now).ToList();
于 2012-07-06T09:29:07.470 回答
0

如果您将其存储为字符串,那么将其存储为 yyyyMMdd 可能是更好的选择。因为这将为您提供简单的排序。

虽然您总是可以System.DateTime.UtcNow.ToString("yyyyMmMdd")与上面的列表进行比较。

于 2012-07-06T09:50:43.680 回答