Изменение запроса с синтаксиса запроса LINQ на СИНТАКСИС МЕТОДА

#c# #linq

#c# #linq

Вопрос:

У меня есть простой код, который проектирует перестановку заданного строкового аргумента. Мне нужно изменить запрос из этого кода с синтаксиса запроса LINQ на синтаксис метода. Буду признателен за любую помощь.

 public static List<string> SinglePermutations(string s)
{
     var result = new List<string> { "" };
           
     foreach (var c in s)
     {
           result = (from r in result
                     from a in s
                     select $"{r}{a}").ToList();
     }
}
  

Комментарии:

1. Из любопытства, зачем вам это нужно?

2. просто для изучения и лучшего понимания вложенных методов.

Ответ №1:

Resharper на помощь:

 public static IEnumerable<string> SinglePermutations(string s)
{
    return s.Aggregate(result, (current, c) => current.SelectMany(r => s, (r, a) => $"{r}{a}")
        .ToList());
}
  

Комментарии:

1. Большое спасибо! . Я использую VS без ReShaper. Так что, я думаю, мне нужно потратить несколько минут, чтобы разобраться в вашем коде.

Ответ №2:

Resharper, без преобразования для цикла. Итак, один шаг до ответа @kalu93.

     public static List<string> SinglePermutations(string s)
{
    var result = new List<string> { "" };
   
    foreach (var c in s)
    {
        result = (result.SelectMany(r => s, (r, a) => $"{r}{a}")).ToList();
    }

    return resu<
}