KPS*_*KPS 3 c# linq string c#-4.0
我试图测试(比较内存中的另一个值)字符串中所有可能的组合,但想知道最好的方法是做什么.
我的输入字符串是0246,诀窍是每个数字可以是2个选项之一,例如:
[0,1][2,3][4,5][6,7]
Run Code Online (Sandbox Code Playgroud)
我希望能够翻转所有可能的组合,这有点像破解保险箱,但这不是我的目的,我保证!
我正在考虑做一个foreach循环切换每个选项,但我的循环将嵌套,我知道性能将受到打击,因为Linq就像新的黑色,这可以用它完成吗?
UPDATE*
我希望结果按从低到高的顺序返回,因为我所比较的原始字符串可能是0001,但随机跳转是没有意义的.
我还想跟踪我有多少次生成不同的变化,并注意到它将在以后使用.
你的意思是这样的:
var allCombinations = from a in new[] { "0", "1", }
from b in new[] { "2", "3", }
from c in new[] { "4", "5", }
from d in new[] { "6", "7", }
select a + b + c + d;
Run Code Online (Sandbox Code Playgroud)
或者更好的:
var allCombinations = from a in "01"
from b in "23"
from c in "45"
from d in "67"
select string.Concat(a, b, c, d);
Run Code Online (Sandbox Code Playgroud)
在后者(花哨)版本a中b,c和d是char变量,string.Concat(a, b, c, d)也可以编写a.ToString() + b + c + d.
| 归档时间: |
|
| 查看次数: |
510 次 |
| 最近记录: |