开发者

What is the better way to do the below program(c#3.0)

开发者 https://www.devze.com 2023-01-03 14:42 出处:网络
Consider the below program private static bool CheckFactorPresent(List<FactorReturn> factorReturnCol)

Consider the below program

private static bool CheckFactorPresent(List<FactorReturn> factorReturnCol)
{
    bool IsPresent = true;
    StringBuilder sb = new StringBuilder();

    //Get the exposure names  from Exposure list.
    //Since this will remain same , so it has been done outside the loop

    List<string> lstExposureName = (from item in Exposures
                    select item.ExposureName).ToList<string>();


    foreach (FactorReturn fr in factorReturnCol)
    {
    //Build the factor names from the ReturnCollection dictionary
    List<string> lstFactorNames = fr.ReturnCollection.Keys.ToList<strin开发者_如何学编程g>();

    //Check if all the Factor Names are present in ExposureName list
    List<string> result = lstFactorNames.Except(lstExposureName).ToList();

    if (result.Count() > 0)
    {
        result.ForEach(i =>
        {
        IsPresent = false;
        sb.AppendLine("Factor" + i + "is not present for week no: " + fr.WeekNo.ToString());        
        });
    }

    }
    return IsPresent;
}

Basically I am checking if all the FactorNames[lstFactorNames] are present in

ExposureNames[lstExposureName] list by using lstFactorNames.Except(lstExposureName).

And then by using the Count() function(if count() > 0), I am writing the error

messages to the String Builder(sb)

I am sure that someone can definitely write a better implementation than the one presented.

And I am looking forward for the same to learn something new from that program.

I am using c#3.0 and dotnet framework 3.5

Thanks


Save for some naming convention issues, I'd say that looks fine (for what I can figure out without seeing the rest of the code, or the purpose in the effort. The naming conventions though, need some work. A sporadic mix of ntnHungarian, PascalCase, camelCase, and abbrv is a little disorienting. Try just naming your local variables camelCase exclusively and things will look a lot better. Best of luck to you - things are looking good so far!

- EDIT - Also, you can clean up the iteration at the end by just running a simple foreach:

...
foreach (var except in result)
{
    isPresent = false;
    builder.AppendFormat("Factor{0} is not present for week no: {1}\r\n", except, fr.WeekNo);
}
...
0

精彩评论

暂无评论...
验证码 换一张
取 消