如何获取 string[] 数组项中字符的所有组合?
How to get all combinations of chars in string[] array items?
有一个字符串数组(例如):string[] arr = {"123","123","123"};
如何获取项目中数组中字符的所有可能组合,例如:111,121,131,112,113 等等,从每个项目中只取一个字符?
你可以这样使用:
string _combinations = String.Empty;
for (int i=0; i<arr.Length;i++){
for (int j=0; j<arr.Length;j++){
for (int k=0; k<arr.Length;k++){
combinations=String.Concat(combinations,arr[i], arr[j], arr[k], ",");
}
}
}
如果数组中的项太多,则进行递归函数调用,将下一个数组项中的字符添加到函数返回的中间数组中的每个先前计算的组合,如下所示:
public string[] CalculateCombinationsArray( string[] array1, string NextItem)
{
string _combinations = String.Empty;
for (int i=0; i<array1.Length;i++){
for (int j=0; j<NextItem.Length;j++){
combinations=String.Concat(combinations,array1[i], NextItem.Substring(j,1), ",");
}
}
return combinations.Split[","];
}
剩下的你可以自己做。
希望这会有所帮助。
有一个字符串数组(例如):string[] arr = {"123","123","123"}; 如何获取项目中数组中字符的所有可能组合,例如:111,121,131,112,113 等等,从每个项目中只取一个字符?
你可以这样使用:
string _combinations = String.Empty;
for (int i=0; i<arr.Length;i++){
for (int j=0; j<arr.Length;j++){
for (int k=0; k<arr.Length;k++){
combinations=String.Concat(combinations,arr[i], arr[j], arr[k], ",");
}
}
}
如果数组中的项太多,则进行递归函数调用,将下一个数组项中的字符添加到函数返回的中间数组中的每个先前计算的组合,如下所示:
public string[] CalculateCombinationsArray( string[] array1, string NextItem)
{
string _combinations = String.Empty;
for (int i=0; i<array1.Length;i++){
for (int j=0; j<NextItem.Length;j++){
combinations=String.Concat(combinations,array1[i], NextItem.Substring(j,1), ",");
}
}
return combinations.Split[","];
}
剩下的你可以自己做。 希望这会有所帮助。