如何排列包含多个字符串项的元组?如何排列C#元组项目?
-5
A
回答
0
使用Tuple
,手动我害怕。所以:
var tuple = new Tuple<string, string, string>("a", "b", "c");
var combination_1 = String.Concat(tuple.Item1, tuple.Item2, tuple.Item3);
var combination_2 = String.Concat(tuple.Item1, tuple.Item3, tuple.Item2);
var combination_3 = String.Concat(tuple.Item2, tuple.Item1, tuple.Item3);
var combination_4 = String.Concat(tuple.Item2, tuple.Item3, tuple.Item1);
var combination_5 = String.Concat(tuple.Item3, tuple.Item1, tuple.Item2);
var combination_6 = String.Concat(tuple.Item3, tuple.Item2, tuple.Item1);
使用修改埃里克Liperts扩展方法,你可以做这样的事情:
扩展方法:
public static IEnumerable<IEnumerable<T>> CartesianProduct<T>(this IEnumerable<IEnumerable<T>> sequences)
{
IEnumerable<IEnumerable<T>> emptyProduct = new[] { Enumerable.Empty<T>() };
return sequences.Aggregate
(emptyProduct, (accumulator, sequence) =>
from accseq in accumulator
from item in sequence
where !accseq.Contains(item)
select accseq.Concat(new[] { item })
);
}
使用案例:
var array = new string[] { "a", "b", "c", "d", "e" };
var result = Enumerable.Range(0, array.Length).Select(_ => array).CartesianProduct();
// Print results
foreach (var item in result)
Console.WriteLine(String.Join("", item));
如果哟ü以往任何时候都希望得到所有排列包括“AAA”,“AAB”等简单地从扩展方法去除
where !accseq.Contains(item)
。
+0
也是这样:'string [] stringArray = {tuple.Item1,tuple.Item2,... tuple.ItemN};'(首先解开tuple对象) –
+0
@AndrejsIgumenovs是的,没错。您可以将项目从元组中移出到数组中并使用相同的扩展方法。 – msmolcic
2
因为"6"
是一个非常小的数字,它是最有效的,只是把它写下来:
tupple1 = a,b,c
tupple2 = a,c,b
...
您不能在较短的时间内创建一个程序。
如果你有兴趣在一个更GENRAL解决方案然而,看到很多环节之一的SO,例如:Permutation algorithms in C#
相关问题
- 1. 如何安排C#项目?
- 2. 按组排列分组项目
- 3. 按python列表元素排序项目
- 4. 如何对列表/元组进行排序(列表/元组)?
- 5. 从Swift的元组数组项目列
- 6. 如何从数组中排除项目?
- 7. 如何将组合框项目排序
- 8. 排序/成组列表中的项目
- 9. 按字段排列的组项目
- 10. C#中的元组列表排序#
- 11. 如何在元组列表中添加项目如果项目是相同的
- 12. 从数组列表中排除项目c#
- 13. 将项目列表转换为项目元组列表
- 14. 如何在Javascript中重新排列数组中的项目?
- 15. 如何自动重新排列MongoDB中的数组项目?
- 16. 如何排列C中argv的元素?
- 17. 如何在C#中排列数组?
- 18. 如何访问元组项目
- 19. 如何订购元组中的项目?
- 20. 我如何重新排列列表项到Python中的配对元组/列表?
- 21. 排列并排列出的项目李
- 22. 如何用MooTools重新排列列表项和DOM的项目?
- 23. erlang:元组列表中的项目
- 24. 将列表项目转换为元组
- 25. 排列父项目下拉项目
- 26. 如何在列表中选择元组的项目?
- 27. 如何使用python压扁元组中的项目列表?
- 28. 如何从我的元组列表中删除项目?
- 29. 如何组织一个C++项目
- 30. C#如何将项目读入数组
问题是关于是否有可能(有n项元组) –