Создать все варианты слов из 2-х символьных массивов - PullRequest
2 голосов
/ 20 апреля 2010

У меня есть 2 коллекции символов caracter пример:

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])

Любые предложения о самом быстром и лучшем способе создания этого

1 Ответ

5 голосов
/ 20 апреля 2010

Я сомневаюсь, что это решение выиграет любые награды скорости, но оно должно быть достаточно быстрым:

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();
...