Подтвердить что ты не робот

Преобразовать в группу методов Resharper

Я написал метод ниже:

internal static IList<EmpowerTaxView> GetEmpowerTaxViewsByLongAgencyAndAgencyTaxTypes(
   IList<EmpowerCompanyTaxData> validEmpowerCompanyTaxDatas,
   IList<EmpowerTaxView> empowerTaxViews)
{
    IList<EmpowerTaxView> result = new List<EmpowerTaxView>();

    foreach (EmpowerCompanyTaxData empowerCompanyTaxData in validEmpowerCompanyTaxDatas)
    {
         IList<EmpowerTaxView> validEmpowerTaxViews =
           GetEmpowerTaxViewsByLongAgencyAndTaxType(
             empowerCompanyTaxData, empowerTaxViews);

         validEmpowerTaxViews.ToList().ForEach(delegate(EmpowerTaxView etv)
         {
              result.Add(etv);   
         });   
    }

    return result;
}

И для этого метода, resharper говорит:

validEmpowerTaxViews.ToList().ForEach(delegate(EmpowerTaxView etv)
{
    result.Add(etv);   
});

Преобразовать в группу методов. Что это значит и что нужно сделать, чтобы избавиться от этого.

4b9b3361

Ответ 1

JaredPar уже предоставил правильный ответ, я просто хотел предложить более простую реализацию метода:

internal static IList<EmpowerTaxView> GetEmpowerTaxViewsByLongAgencyAndAgencyTaxTypes(
    IList<EmpowerCompanyTaxData> validEmpowerCompanyTaxDatas,
    IList<EmpowerTaxView> empowerTaxViews)
{
    var results =
        from empowerCompanyTaxData in validEmpowerCompanyTaxDatas
        from etv in GetEmpowerTaxViewsByLongAgencyAndTaxType(
            empowerCompanyTaxData, empowerTaxViews)
        select etv;
    return results.ToList();
}

Ответ 2

Что означает Resharper, так это то, что вы можете выразить код ForEach проще, используя группу методов Add. Пример:

validEmpowerTaxViews.ToList().Foreach(result.Add);

Группа методов, определенная Add, совместима с делегатом, ожидаемым ForEach, и, следовательно, компилятор С# позаботится об этом. По умолчанию в Resharper предпочтение отдается группам методов над lambdas и явным заявлениям о создании делегатов.

Ответ 3

Примите предложение Resharper, чтобы узнать, какие изменения он внесет. Вы всегда можете их отменить.

Если вы не удовлетворены этим изменением и не хотите, чтобы Resharper предлагал его в будущем, вы можете отключить этот конкретный вариант - остальные останутся доступными. Подробнее см. Здесь.

Resharper: vars