c# - 创建 2 个字符数组的所有单词变体

标签 c# generics collections arrays string

我有 2 个字符串集合 例如:

List<string> one = new List<string>;
one.Add("a");
one.Add("b");
one.Add("c");

List<string> two = new List<string>;
two.Add("x");
two.Add("y");
two.Add("z");

我想做的是创建一个可以由此创建的所有单词变体的列表。 但我只想创建 4 个字符的单词! 例如我想要这样的词

axax (from one[1],two[1],one[1],two[1])
ayax (from one[1],two[2],one[1],two[1])
azax (from one[1],two[3],one[1],two[1])

最终到达

czcz (from one[3],two[3],one[3],two[3])

有关生成此内容的最快和最佳方式的任何建议

最佳答案

我怀疑这个解决方案是否会赢得任何速度奖,但它应该相当快:

var one = new [] { "a", "b", "c" };
var two = new [] { "x", "y", "z" };

var ot = from o in one from t in two select o + t;
var r = from f in ot from s in ot select f + s;
var list = r.ToList();

关于c# - 创建 2 个字符数组的所有单词变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2674419/

相关文章:

c# - 访问基类中的子类...但不同

java - 通用平均 - 需要一个通用类型,但有一个 int 代替

javascript - 将选定的输入值存储在数组中并插入到 mongodb 上

c# - 当我们总是使用可空值类型而不是值类型时,性能会下降吗?

c# - 转换后不需要的按钮调整大小

c# - 通过代码隐藏中的数据表分页

java - Ljava.lang.Object;不能转换为 [Ljava.lang.Integer

java - Hibernate IndexColumn 中 0 的值映射为 base=1

swift - 如何按其中一个元素对数组进行排序?

Java 8 将 Map<K, List<V>> 转换为 Map<V, List<K>>