Комбинация списка <Список <int>>
Если количество измерений language-integrated-query фиксировано, это просто SelectMany
:
var qry = from a in A
from b in B
from c in C
select new {A=a,B=b,C=c};
Однако, если list количество измерений контролируется csharp данными, вам необходимо использовать generic рекурсию:
static void Main() {
List> outerList = new List>
{ new List(){1, 2, 3, 4, 5},
new List(){0, 1},
new List(){6,3},
new List(){1,3,5}
};
int[] result = new int[outerList.Count];
Recurse(result, 0, outerList);
}
static void Recurse(int[] selected, int index,
IEnumerable remaining) where TList : IEnumerable {
IEnumerable nextList = remaining.FirstOrDefault();
if (nextList == null) {
StringBuilder sb = new StringBuilder();
foreach (int i in selected) {
sb.Append(i).Append(',');
}
if (sb.Length > 0) sb.Length--;
Console.WriteLine(sb);
} else {
foreach (int i in nextList) {
selected[index] = i;
Recurse(selected, index + 1, remaining.Skip(1));
}
}
}
c#
linq
generics
list
combinations
2021-12-15T06:35:55+00:00
2022-10-13T23:40:00+00:00
UxoSpina
Вопросы с похожей тематикой, как у вопроса:
Комбинация списка <Список <int>>
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.