2014-01-08 109 views
0

如何在C#創建維數組三個組合?我收到錯誤消息C#維度數組的三個組合?

指數數組的邊界之外。

foreach (XmlNode RegexExpression in XmlDataAccess.GetElementList(RefFile, "//regex")) 
{ 
    xRefList.Add(RegexExpression.InnerText); 
} 

foreach (XmlNode RegexExpression in XmlDataAccess.GetElementList(RefFile, "//word")) 
{ 
    WordList.Add(RegexExpression.InnerText); 
} 
foreach (XmlNode RegexExpression in XmlDataAccess.GetElementList(RefFile, "//title")) 
{ 
    TitleList.Add(RegexExpression.InnerText); 
} 

ArrayList xRefResult = MainDocumentPart_Framework.getReferenceContent(FileName, xRefList); 
ArrayList TitleResult = MainDocumentPart_Framework.getReferenceContent(FileName, TitleList); 
ArrayList WordResult = MainDocumentPart_Framework.getReferenceContent(FileName, WordList); 


var FinalResult = from first in TitleResult.ToArray() 
        from second in WordList.ToArray() 
        from third in xRefResult.ToArray() 
        select new[] { first, second, third }; 

foreach (var Item in FinalResult) 
{ 
    System.Windows.MessageBox.Show(Item.ToString()); 

    //I like to view show, all the combination of arrays 
    //first1, second1, third1 
    //first1, second1, third2 
    //first1, second1, third3 ........... 
} 
+0

代碼的哪一部分是你得到的錯誤? – Obversity

+0

最後一個'foreach'塊中的每個'item'實際上都是一個數組 - 所以你可能不想把它變成一個字符串。你需要一個嵌套循環。 '的foreach(在FinalResult變種的項目) { 的foreach(項VAR innerItem) { System.Windows.MessageBox.Show(innerItem.ToString()); } }' 也就是說,您可能不想使用消息框來顯示它。不過,我相信你知道這一點。 – Obversity

+0

感謝您的快速回復,我想顯示「System.Windows.MessageBox.Show(item); //我的意思是結合」第一[1]秒[1]第三[1] \ n第一[1]秒[ 1]第三[2]「就像這樣 –

回答

0

我真的不知道你是什麼樣的輸出後,我不認爲你需要使用LINQ這一點。

string outputStr = ""; 

for(int x = 0;x<xRefList.Count;x++) 
{ 
    for(int y = 0;y<WordList.Count;y++) 
    { 
    for(int z = 0;z<TitleList.Count;z++) 
    { 
     outputStr += xRefList[x] + " " + WordList[y] + " " + TitleList[z] + "\n"; 
    } 

    } 
} 

MessageBox.Show(outputStr); 

會是這樣的工作?