得错了吗?

时间:2012-10-01 02:07:05

标签: c#

我得到错误的计数错误,我无法弄清楚原因。

在我的数据库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# - >开始计数),stCount#的值为4而不是1.

我的代码出了什么问题?

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

你正在做.Contains("Started")。这将包括其中包含单词“Started”的任何字符串,包括“NotStarted”

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