Вы задали два разных вопроса. Тот, кого вы описали в заголовке, уже ответил drilis.
Но ваш пример кода - это другая проблема. Мы можем сделать рефакторинг поэтапно. Шаг 1, создайте список subCombinations
, используя Linq:
List<string> filteredCombinations = new List<string>();
//For each collection in the combinated results collection
foreach (var combinatedValues in combinatedResults)
{
var subCombinations = combinatedValues.Where(v => v > 0)
.Select(v => v.ToString())
.ToList();
if (subCombinations.Count > 0)
filteredCombinations.Add(string.Join(",",subCombinations.ToArray()));
}
Теперь внешний цикл, оставляющий нам только это:
var filteredCombinations = combinatedResults
.Select(values => values.Where(v => v > 0)
.Select(v => v.ToString())
.ToArray())
.Where(a => a.Count > 0)
.Select(a => string.Join(",", a));