using System.Collections.Generic;
public static void Main()
var eventos = new List<Evento>
Nome = "Evento Fora do prazo cenario 1",
DataInclusao = DateTime.Today,
DataUltimaAula = DateTime.Today.AddMonths(-2)
Nome = "Evento Fora do prazo cenario que nao deve aparece",
DataInclusao = DateTime.Today.AddMonths(2),
DataUltimaAula = DateTime.Today.AddMonths(-5)
Nome = "Evento dentro do prazo",
DataInclusao = DateTime.Today,
DataUltimaAula = DateTime.Today
var dataInicio = DateTime.Today.AddDays(-21);
var dataFinal = DateTime.Today.AddDays(10);
Console.WriteLine("Substituições Fora do Prazo");
var teste = eventos.Where(x => x.DataInclusao >= dataInicio && x.DataInclusao <= dataFinal)
.Where(x => x.DataUltimaAula <= dataInicio || x.DataUltimaAula >= dataFinal);
foreach(var item in teste.Select(x => x.Nome)) {
Console.WriteLine("Substituições No Prazo");
var teste2 = eventos.Where(x => x.DataInclusao >= dataInicio && x.DataInclusao <= dataFinal)
.Where(x => x.DataUltimaAula >= dataInicio && x.DataUltimaAula <= dataFinal);
foreach(var item in teste2.Select(x => x.Nome)) {
public DateTime DataInclusao;
public DateTime DataUltimaAula;