0

我得到了错误的计数错误,我不知道为什么。

在我的数据库中,serverId = 1/2/3 每个服务器只有一个启动值和 3 个未启动值。

painfo = (from paes in server.AppPM_Paes
          where (paes.PaStatus == "Started" || paes.PaStatus == "NotStarted" ) && paes.ServerId != null
          select new PaDetails { ServerID = paes.ServerId, PaStatus = paes.PaStatus }).ToList();
foreach (PaDetails a in painfo)
{
    if (a.PaStatus.Contains("Started") && a.ServerID.Equals(1))
        stCount1++;
    if (a.PaStatus.Contains("Started") && a.ServerID.Equals(2))
        stCount2++;
    if (a.PaStatus.Contains("Started") && a.ServerID.Equals(3))
        stCount3++;
    if (a.PaStatus.Contains("NotStarted") && a.ServerID.Equals(1))
        notStCount1++;
    if (a.PaStatus.Contains("NotStarted") && a.ServerID.Equals(2))
        notStCount2++;
    if (a.PaStatus.Contains("NotStarted") && a.ServerID.Equals(3))
        notStCount3++;                    
}       

但在我上面的代码(stCount#->started count)stCount#中,值是 4 而不是 1。

我的代码有什么问题?

你能帮我么?

4

1 回答 1

1

你正在做一个.Contains("Started"). 这将包括任何包含“Started”字样的字符串,包括“NotStarted”

您可以将其更改为a.PaStatus == "Started"a.PaStatus.Equals("Started")

于 2012-10-01T02:08:34.853 回答