Я не могу точно знать, как именно вы хотите, чтобы он был отфильтрован, но в основном вы можете сделать следующее, если хотите получить список ордеров, время которых равно заданному ордеру.
public IQueryable<Order> GetOrderFiltered(IQueryable<Order> OrdersQuery, Order order)
{
return OrdersQuery.Where(x => x.Time == order.Time);
}
Вот пример класса, который я написал, чтобы проверить это:
class Program
{
public class Order
{
public Order(int id, string time)
{
this.Id = id;
this.Time = time;
}
public int Id { get; set; }
public string Time { get; set; }
}
static void Main(string[] args)
{
List<Order> list = new List<Order>();
list.Add(new Order(0, "1"));
list.Add(new Order(1, "2"));
list.Add(new Order(2, "1"));
list.Add(new Order(3, "2"));
list.Add(new Order(4, "1"));
IQueryable<Order> test = GetOrderFiltered(list.AsQueryable(), new Order(121, "1"));
// test has orders 0,2,4
}
public static IQueryable<Order> GetOrderFiltered(IQueryable<Order> OrdersQuery, Order order)
{
return OrdersQuery.Where(x => x.Time == order.Time);
}
}
Edit.
Прочитав ваш новый комментарий, вы ищете следующую функцию:
public IQueryable<Order> GetOrderFiltered(IQueryable<Order> OrdersQuery, Order order)
{
return OrdersQuery.Where(x => x.Time == DateTime.Today.ToString("dd/MM/yyyy"));
}
Только в том случае, если ваше Время выглядит так - "01/02/2005", конечно.
Вы можете играть со своей собственностью Time, как хотите, это зависит от вас. Если у вас есть минуты и секунды после дд / мм / гггг, в соответствии с вашим кодом, то вы можете использовать:
return OrdersQuery.Where(x => x.Time.StartsWith(DateTime.Today.ToString("dd/MM/yyyy")));
или "Содержит" вместо "StartsWith"