그래서, 당신은 스카 이프 역사 그룹과 같은 그룹이 필요합니다
Show messages from: Yesterday * 7 days * 30 days .. etc.
이 같은, 당신은 날짜 및 일부 다른 필드 일류 상품이 있다고 가정 :
public class Product
{
public DateTime Date { get; set; }
public string ProductName { get; set; }
}
당신이 할 수있는보다 다음과 같은 도우미 클래스를 만드십시오.
public enum ProductGroupEnum
{
Today = 0,
Yesterday = 1,
Last30Days = 30
}
public static class ProductsHelper
{
public static List<Product> GetProductsGroup(ProductGroupEnum group, IEnumerable<Product> products)
{
var daysCount = (int)group;
return products.Where(x => DateTime.Now.Date - x.Date.Date <= new TimeSpan(daysCount, 0, 0, 0)).ToList();
}
}
열거 형 대신에 Dat eTime.Now.AddDays (-1) 예를 들면. '지난 3 개월 그룹'을 원할 경우 90 일을 사용하지 않는 것이 좋습니다.
그리고 코드의 최종 예 :
var products = new List<Product>()
{
new Product() {Date = DateTime.Now.AddMinutes(-30), ProductName = "TodayProduct"},
new Product() {Date = DateTime.Now.AddDays(-1), ProductName = "YesteradayProduct"},
new Product() {Date = DateTime.Now.AddDays(-25), ProductName = "LastMonthProduct"}
};
var todayProducts = ProductsHelper.GetProductsGroup(ProductGroupEnum.Today, products);
var yesterdayProducts = ProductsHelper.GetProductsGroup(ProductGroupEnum.Yesterday, products);
그래서 'todayProducts은'오직 첫 번째 제품을 포함, 하지만 'yesterdayProducts은'처음 두 제품이 (가) 포함됩니다은 (어제 오늘 제품을 의미합니다).
또한 위의 'ProductsHelper'도우미 메서드를 '보기'에서 쉽게 사용할 수있어 필요에 따라 필터링 할 수 있습니다.
희망 도움말.
감사합니다. 열거 제안은 최소한 나를 보내주기에 충분해야합니다. – Gallen