0

間違ったカウント エラーが発生しましたが、その理由がわかりません。

私のデータベース serverId = 1/2/3 には、サーバーごとに 1 つの開始値と 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#、値が 1 ではなく 4 になっています。

私のコードで何が問題になっていますか?

手伝ってくれませんか?

4

1 に答える 1

1

あなたはやっています.Contains("Started")。これには、「NotStarted」を含め、「Started」という単語が含まれるすべての文字列が含まれます。

a.PaStatus == "Started"またはに変更できます。a.PaStatus.Equals("Started")

于 2012-10-01T02:08:34.853 に答える