2010-04-20 49 views
2

我有2個集合卡拉科特串 恩:創建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]) 

上最快最好的方法有什麼建議產生這種

+0

所以你的結果字符串應該總是s [CharFromOne] [CharFromTwo] [CharFromOne] [CharFromTwo] ?!例如。 「aaaa」不會是一個有效的結果?! – gehho 2010-04-20 11:08:17

回答

5

我懷疑這個解決方案會贏得任何速度獎項,但它應該是相當快的:

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(); 
相關問題