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);
}
}
我还想添加另一个查询:&amp;&amp; ap.Date ==获取本月的所有文件。
所以我有string date = todaysDate.ToString("MMMM, yyyy");
现在怎么办?
答案 0 :(得分: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);
}
}
答案 1 :(得分:1)
将Date上的Month和Year属性与当前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();
我认为&#34; db&#34;变量是指实体框架上下文。如果是这样,如果您对包含所有PLU的列表没有任何进一步的要求,您可能希望在EF查询中执行部分或全部此过滤。
答案 2 :(得分: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);
}
}
答案 3 :(得分: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) { }