微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代后仅在不同条件下返回相同记录的列表中的 Foreach

如何解决迭代后仅在不同条件下返回相同记录的列表中的 Foreach

更新:

1.我有一个结果对象,其中包含来自 db 的 100 条数据记录。基于不同的条件,我必须将这些记录存储在列表中。我将每条记录添加到他们满意的条件循环中。但是当我看到最终对象时所有 100 条记录都相同。会出现什么问题?

  1. 是否有针对此相同逻辑的重构方法,因为我编写了一些入门级代码,请建议

我在我的方法中尝试了什么:

       foreach (var data in MainObj)
    {
        if (!String.IsNullOrEmpty(data.RealKey))
        {
            if (data.ResultStatus == "Failed")
            {
                FailedTestCases.Add(data.TestCases);
            }

            if (FailedTestCases.Count > 0)
            {
                alltcPassed = false;
            }
            else
            {
             
                alltcPassed = true;
            }

            if (isValidKey && alltcPassed)
            {
            
               ResultSummary.TestCases = JsonConvert.SerializeObject(FailedTestCases);
                ResultSummary.TestType = data.TestType;
                ResultSummary.ResultStatus = data.ResultStatus;
                result.Add(ResultSummary);

            }
            if (isValidKey && !alltcPassed)
            {
               
                ResultSummary.TestCases = JsonConvert.SerializeObject(FailedTestCases);
                ResultSummary.TestType = data.TestType;
                ResultSummary.ResultStatus = data.ResultStatus;
                result.Add(ResultSummary);

            }
            if (!isValidKey && alltcPassed)
            {
                ResultSummary.TestCases = JsonConvert.SerializeObject(FailedTestCases);
                ResultSummary.TestType = data.TestType;
                ResultSummary.ResultStatus = data.ResultStatus;
                result.Add(ResultSummary);
            }

            if (!isValidKey && !alltcPassed)
            {
               
                ResultSummary.TestCases = JsonConvert.SerializeObject(FailedTestCases);
                ResultSummary.TestType = data.TestType;
                ResultSummary.ResultStatus = data.ResultStatus;
                result.Add(ResultSummary);
            }
        }

      //   this else happen when this condition true the firstone foreach(!String.IsNullOrEmpty(data.RealKey))

        else
        {
            if (data.ResultStatus == "Failed")
            {
                FailedTestCases.Add(data.TestCases);

                
                    ResultSummary.TestCases = JsonConvert.SerializeObject(FailedTestCases);
                    ResultSummary.TestType = data.TestType;
                    ResultSummary.ResultStatus = data.ResultStatus;
                    result.Add(ResultSummary);

            }
            if (data.ResultStatus == "Passed" && FailedTestCases.Count==0)
            {
              
                ResultSummary.TestCases = data.TestCases;
                ResultSummary.TestType = data.TestType;
                ResultSummary.ResultStatus = data.ResultStatus;
                result.Add(ResultSummary);

            }
         
        }
    }
      return  Task.Fromresult(result.FirstOrDefault()); //here result having 100 datas but all are same need to get 100 diffrent record
}

解决方法

我猜您想将 List FailedTestCases = new List(); 放在 foreach 循环之外,以便您拥有所有 FailedTestCases。如果您希望列表包含您的 FailedTestCases 和自定义错误消息。您可以尝试做一个对象列表。 Example

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。