如何为特定日期和时间排序列表

时间:2012-07-06 09:25:26

标签: c# windows-phone-7

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

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;

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

5 个答案:

答案 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")与上面的列表进行比较。