Учитывая два IEnumberable разных типов, какова лучшая практика (учитывая удобочитаемость и удобство сопровождения) для итерации по обоим спискам для выполнения действий со всеми возможными комбинациями?
Мое первоначальное решение состояло в том, чтобы использовать вложенные циклы foreach, повторяя первый IEnumerable, а затем внутри этого цикла, повторяя второй IEnumerable и передавая значение из внешнего и текущего цикла в целевой метод. Eg.:
enum ParamOne
{
First,
Second,
Etc
}
List<int> paramTwo = new List<int>() { 1, 2, 3 };
void LoopExample()
{
foreach (ParamOne alpha in Enum.GetValues(typeof(ParamOne)))
{
foreach (int beta in paramTwo)
{
DoSomething(alpha, beta);
}
}
}
Я попытался реструктурировать его с помощью LINQ, но в итоге получилось нечто, что не имело очевидных преимуществ и казалось менее интуитивным. Поиск здесь показывает много вопросов о вложенных foreachs для итерации по дочерним свойствам, но я не смог найти ничего по поводу итерации по двум различным спискам.