首页 \ 问答 \ 在Date之后排序列表然后是时间(Sorting list after Date then time)

在Date之后排序列表然后是时间(Sorting list after Date then time)

所以我正在开设一个网站(MVC)来处理节日期间乐队的日程安排条目,我需要按照逻辑顺序提交预订,当我尝试订购时我遇到了一些意想不到的困难。 我的目标是先按日期和时间排序。

我显然已经阅读了所有类似的问题,但我似乎没有解决问题。

这是我的模型(在这种情况下重要的部分):

public int ScheduleEntryId { get; set; }
public int ScheduleId { get; set; }
public int? BandId { get; set; }
public int? MovieId { get; set; }
public int? TechnicianId { get; set; }
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
public DateTime EventDate { get; set; }

我试图从特定乐队获得一个排序的条目列表。 所以这就是我现在所拥有的:

List<ScheduleEntry> scheduleEntries =
    db.ScheduleEntries.Where(x => x.BandId == band.BandId)
        .OrderBy(x => x.EventDate)
        .ThenBy(z => z.StartTime.Value).ToList();

这会对日期之后的条目进行排序,但不会在时间之后排序。

我也尝试分离linq和排序,以便我可以使用.TimeOfDay,因为linq不支持该方法。 这是我试过的:

var scheduleEntries = db.ScheduleEntries.Where(x => x.BandId == band.BandId).ToList();
scheduleEntries.OrderByDescending(z => z.EventDate.Date).ThenBy(z=> z.StartTime.Value.TimeOfDay);

我知道这很傻,我可能错过了一些明显的东西,但我不能让它正常工作。 非常感谢帮助。


So I'm working on a website ( MVC ) that handles Schedule entries for bands during a festival and I need to present bookings in a logical order and I´m having some unexpected difficulties when I try to order them. My goal is to order them first by date and then by time.

I've obviously read all similar questions that I could find but none seems to solve the problem.

This is my model (The parts that matter in this situation):

public int ScheduleEntryId { get; set; }
public int ScheduleId { get; set; }
public int? BandId { get; set; }
public int? MovieId { get; set; }
public int? TechnicianId { get; set; }
public DateTime? StartTime { get; set; }
public DateTime? EndTime { get; set; }
public DateTime EventDate { get; set; }

I´m trying to get a sorted list of entries from a specific Band. So this is what I have at the moment:

List<ScheduleEntry> scheduleEntries =
    db.ScheduleEntries.Where(x => x.BandId == band.BandId)
        .OrderBy(x => x.EventDate)
        .ThenBy(z => z.StartTime.Value).ToList();

This does sort the entries after the date, but not after time.

I have also tried to seperate the linq and sorting so that I can use .TimeOfDay, since linq does not support that method. This is what I tried:

var scheduleEntries = db.ScheduleEntries.Where(x => x.BandId == band.BandId).ToList();
scheduleEntries.OrderByDescending(z => z.EventDate.Date).ThenBy(z=> z.StartTime.Value.TimeOfDay);

I know this is pretty silly and I´m probably missing something obvious, but I just cant get it to work properly. Help would be greatly appreciated.


原文:https://stackoverflow.com/questions/37568449
更新时间:2019-12-13 07:40

最满意答案

尝试

List<ScheduleEntry> scheduleEntries = db.ScheduleEntries
  .Where(x => x.BandId == band.BandId)
  .OrderBy(x => x.EventDate)
  .ThenBy(z => z.StartTime)
  .ToList();

编辑按照@ IvanStoev的评论建议


Try

List<ScheduleEntry> scheduleEntries = db.ScheduleEntries
  .Where(x => x.BandId == band.BandId)
  .OrderBy(x => x.EventDate)
  .ThenBy(z => z.StartTime)
  .ToList();

Edited As per @IvanStoev's suggestion in the comments

2016-09-03

相关文章

更多

最新问答

更多
  • 这个listArray是如何填充的?(How is this listArray populated?)
  • iOS 7上的CTSubscriber(以及如何使用它)是什么?(What's CTSubscriber (and how to use it) on iOS 7?)
  • 手动创建VisualStudio 2012项目文件(Manually creating VisualStudio 2012 project file)
  • 删除不适用于JSP中使用for循环的每个id(Deletion not working for every id using for loop in JSP)
  • 如何从std :: filesystem :: path中删除引号(How to remove quotation marks from std::filesystem::path)
  • 验证多个控制器方法的URL路径(Validate URL path for several controller methods)
  • 如何在datarow []中的列中找到最大值?(How to find max value in a column in a datarow[] ?)
  • 如何使用预定义文本替换来自数据库的部分结果(How do I replace part of result coming from Database with predefined text)
  • Selenium Java注入了新的Javascript函数(Selenium Java inject new Javascript function)
  • 使用.on的多个下拉菜单选择文本仅适用于第一个下拉列表(Multiple Dropdowns Menu Selection text using .on works only on first dropdown)
  • 快速将黄土曲线添加到大型数据集图中的方法(Quick way to add loess curve to large data set graph)
  • FilteringSelect in mvc(FilteringSelect in mvc)
  • 在Delphi XE2中开发Mac或iOS应用程序需要哪些硬件/软件?(What hardware/software is necessary to develop Mac or iOS apps in Delphi XE2?)
  • 在原型的构造函数中初始化属性时获取“未定义”(Getting 'undefined' when a property is initialized in the constructor of a prototype)
  • 通过越狱加载的应用程序的Documents文件夹位置(Location of Documents folder for an app loaded via jailbreak)
  • 在OpenGL中使用可编程和固定管道功能(Using both programmable and fixed pipeline functionality in OpenGL)
  • 将任何用户输入重定向到单独的底层程序(redirect any user input to a separate underlying program)
  • 编辑文本不能正常工作android(Edit texts not working properly android)
  • “user_denied”Facebook应用页面上的Facebook用户区域设置(Facebook user locale on “user_denied” facebook app page)
  • 在大图像中找到小的部分透明图像的坐标(find coordinates of small partially-transparent image within a large image)
  • 我如何在cakephp 3.1中获得完整的相对路径?(How i can get full relative path of image in cakephp 3.1?)
  • 如何保存拖动标记的新本地化?(How to save new localization of dragged marker?)
  • MySQL UPDATE vs INSERT和DELETE(MySQL UPDATE vs INSERT and DELETE)
  • 在执行查询之前,在SQLAlchemy模型中将datetime转换为unix时间戳?(Convert datetime to unix timestamp in SQLAlchemy model before executing query?)
  • OpenCL与OpenGL互操作的优势(Advantage of OpenCL interoperability with OpenGL)
  • 如何解析用点和等分隔的数据然后添加到listview(How to parsing data from delimited with dot and equal then add to listview)
  • 带调试输出的X3解析器段错误(BOOST_SPIRIT_X3_DEBUG)(X3 parser segfaults with debug output (BOOST_SPIRIT_X3_DEBUG))
  • 将文件夹名称添加到fgrep结果(Add folder name to fgrep result)
  • 在MySQL中加载一个表是非常慢的(Loading one table in MySQL is ridiculously slow)
  • 如何将JSON放入PHP变量?(How do I put JSON into a PHP Variable?)