首页 / C# / c# – 测试字符串中的所有可能性
c# – 测试字符串中的所有可能性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 测试字符串中的所有可能性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1212字,纯文字阅读大概需要2分钟。
内容图文
![c# – 测试字符串中的所有可能性](/upload/InfoBanner/zyjiaocheng/756/8ddf19008b23457ea3d4817a3bfaed68.jpg)
我试图测试(比较内存中的另一个值)字符串中所有可能的组合,但想知道最好的方法是做什么.
我的输入字符串是0246,诀窍是每个数字可以是2个选项之一,例如:
[0,1][2,3][4,5][6,7]
我希望能够翻转所有可能的组合,这有点像破解保险箱,但这不是我的目的,我保证!
我正在考虑做一个foreach循环切换每个选项,但我的循环将嵌套,我知道性能将受到打击,因为Linq就像新的黑色,这可以用它完成吗?
UPDATE *
我希望结果按从低到高的顺序返回,因为我所比较的原始字符串可能是0001,但随机跳转是没有意义的.
我还想跟踪我有多少次生成不同的变化,并注意到它将在以后使用.
解决方法:
这是一种适用于任意数量输入的方法(在将格式解析为int [] []之后),使用Aggregate和Join:
var data = new[]
{
new[] { 0, 1 },
new[] { 2, 3 },
new[] { 4, 5 },
new[] { 6, 7 },
};
var nums = data.Aggregate(new[] { "" }.AsEnumerable(),
(agg, arr) => agg.Join(arr, x => 1, x => 1, (i, j) => i.ToString() + j));
输出:
0246
0247
0256
0257
0346
0347
0356
0357
1246
1247
1256
1257
1346
1347
1356
1357
它使用LINQ,所以它可能不是有史以来最快的东西(对于我这个数据仍然<1毫秒),并且有些东西闻起来我如何使用Join和固定连接值,所以它可能不是最好的东西,但是嘿 - 它有效. 我假设您确实需要列出的所有值.如果您真正想要做的就是查看该值是否与看起来像有效密码的东西匹配,那么像Dmitry’s solution这样的正则表达可能就是这样.
内容总结
以上是互联网集市为您收集整理的c# – 测试字符串中的所有可能性全部内容,希望文章能够帮你解决c# – 测试字符串中的所有可能性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。