2014-02-17 169 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

是app.Date是DateTime还是字符串 – Plue

回答

2

假设ap.DateDateTime,你可以检查的年份和月份是相同的:

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

比较上日期的月和年属性与当前日期时间:

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(); 

我假设“DB”变量是指实体框架上下文。如果是这样,并且如果您对包含所有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 

then

foreach(ActionPerformed ap in aps) { }