2014-02-17 2 views
1
List<ActionPerformed> EndOfMonthPLUs = new List<ActionPerformed>(); 
List<ActionPerformed> AllPLUs = db.ActionPerformeds.ToList(); 

foreach (ActionPerformed ap in AllPLUs) 
{ 
    if (ap.File_Name == "PLU" && ap.Status == "Processed" && ap.Date == ??) 
    { 
     EndOfMonthPLUs.Add(ap); 
    } 
} 

Я также хочу добавить еще один запрос: & & ap.Date == получить все файлы в этом месяце. Итак, у меня есть string date = todaysDate.ToString("MMMM, yyyy");выберите записи в этом месяце ТОЛЬКО

Что теперь?

+1

Это приложение. Дата DateTime или строка – Plue

ответ

2

ap.Date Предполагая, что это DateTime, вы можете проверить месяц и год идентичны:

var now = DateTime.Now; 

foreach (ActionPerformed ap in AllPLUs) 
{ 
    if (ap.File_Name == "PLU" 
     && ap.Status == "Processed" 
     && ap.Date.Month == now.Month 
     && ap.Date.Year == now.Year) 
    { 
     EndOfMonthPLUs.Add(ap); 
    } 
} 
0

Если я не хватает что-то, и ваш ap.Date свойство является DateTime, вы могли бы просто сделать это?

foreach (ActionPerformed ap in AllPLUs) 
     { 
      if (ap.File_Name == "PLU" && ap.Status == "Processed" && 
       ap.Date.Month == DateTime.Today.Month) 
      { 
       EndOfMonthPLUs.Add(ap); 
      } 
     } 
1

Сравнить свойства Месяц и год на Дату тем текущего DateTime:

var AllPLUs = db.ActionPerformeds.ToList(); 
var now = DateTime.Now; 

var EndOfMonthPLUs = AllPLUs 
    .Where(ap => 
     ap.File_Name == "PLU" && 
     ap.Status == "Processed" && 
     ap.Date.Month == now.Month && 
     ap.Date.Year == now.Year) 
    .ToList(); 

Я предполагаю, что переменная «дб» относится к Entity Framework контекст. Если это так, и если у вас нет каких-либо дополнительных требований к списку, содержащему ВСЕ PLU, вы можете выполнить часть или всю эту фильтрацию как часть запроса EF.

0

Я думаю, что

ap.Date.ToString("MMMM, yyyy") == date 

ответ вы ищете ... альтернативы может быть

ap.Date.Month == DateTime.Now.Month && ap.Date.Year == DateTime.Now.Year 

или так как вы используете объекты, могли бы применить запрос LINQ

var aps = from ap in AllPLUs 
where ap.File_Name == "PLU" 
&& ap.Status == "Processed" 
&& ap.Date.Month == DateTime.Now.Month 
&& ap.Date.Year == DateTime.Now.Year 
select ap 

затем

foreach(ActionPerformed ap in aps) { } 
Смежные вопросы