如何排列包含多個字符串項的元組?如何排列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項元組) –