C# 我如何构造完美的条件

C# 我如何构造完美的条件,c#,if-statement,C#,If Statement,这是我的问题:我想创建一个程序来检查ATM中的错误,并将其与数据库中保存的数据进行比较,以获得一条短信,其中包含每台机器的错误状态(已解决、未解决、新)。程序完成了,工作正常,但崩溃了,在还原比较器中的条件后,方法停止工作。正如它现在假设的那样,它返回与新错误相同的已解决错误。以下是函数:- 请帮助解决以下条件:S private object[] CompareErrs(string MachineErr, string DBErr) { #reg

这是我的问题:我想创建一个程序来检查ATM中的错误,并将其与数据库中保存的数据进行比较,以获得一条短信,其中包含每台机器的错误状态(已解决、未解决、新)。程序完成了,工作正常,但崩溃了,在还原
比较器中的条件后,方法停止工作。正如它现在假设的那样,它返回与新错误相同的已解决错误。以下是函数:-
请帮助解决以下条件:S

   private object[] CompareErrs(string MachineErr, string DBErr)        
    {
        #region CompareErrs
        object[] ToReturn = new object[2];

        string Errs_Solved = "";
        string Errs_UnSolved = "";
        string Errs_New = "";

        string[] MachineErrSplit = MachineErr.Split(' ');
        for (int i = 0; i < MachineErrSplit.Length; i++)
        {
            string Seperator = " ";
            //if (i == MachineErrSplit.Length - 1)
            //    Seperator = "";

            if (DBErr.Contains(MachineErrSplit[i]))
            {
                Errs_UnSolved += MachineErrSplit[i] + Seperator;
            }
            else //if (MachineErrSplit[i].Contains(DBErr))
            {
                Errs_Solved += MachineErrSplit[i] + Seperator;
            }

            if (!DBErr.Contains(MachineErrSplit[i]))
            {
                Errs_New += MachineErrSplit[i] + Seperator;
            }
        }

        ToReturn[0] = new string[3] { Errs_Solved, Errs_UnSolved, Errs_New };
        ToReturn[1] = MachineErr;
        return ToReturn;

        #endregion
    }
private object[]比较器(string MachineErr,string DBErr)
{
#区域比较器
对象[]返回=新对象[2];
字符串Errs_Solved=“”;
字符串Errs_UnSolved=“”;
字符串Errs_New=“”;
字符串[]MachineErrSplit=MachineErr.Split(“”);
对于(int i=0;i
这两个是相同的。。。将相同的值分配给不同的变量

因为,否则的情况

if (DBErr.Contains(MachineErrSplit[i]))

if (!DBErr.Contains(MachineErrSplit[i]))

预期的输出是什么?崩溃,你的意思是,它抛出了一个异常?你能提供一些细节吗?而且,如果
DBErr
只包含“未解决”的错误,那么您不也应该有一个“已解决”错误的列表吗?此外,将错误列表存储在单个字符串中是一个非常糟糕的主意。不,这不是例外,但正如您在评论中所说的,已解决的错误和新错误都是相同的。我现在需要做的就是正确处理条件
if (!DBErr.Contains(MachineErrSplit[i]))