2013-10-10 117 views
-1

我試圖創建一個簡單的計算器來顯示哪些整數包含在兩個數組中,所有這些數字都是由用戶輸入的。如何得到滿數字,因爲我認爲當我做foreach循環它的閱讀數字像例如49它讀取它作爲4和9不是49?我如何解決這個問題?我又在哪裏誤解了?檢查一個元素是否包含在兩個不同的數組中

string firstTextBox = ConjTextBox.Text; 
string secondTextBox = DisjTextBox.Text; 
int intsInFirstTextBox; 
int intsInSecondTextBox; 
List<int> ListOfInts = new List<int>(); 
try 
{ 
    foreach (char c in firstTextBox) 
    { 
     intsInFirstTextBox = Convert.ToInt32(c); 
     foreach (char q in secondTextBox) 
     { 
      intsInSecondTextBox = Convert.ToInt32(q); 

      if (intsInFirstTextBox == intsInSecondTextBox) 
      { 
       ListOfInts.Add(intsInFirstTextBox); 
       ListOfInts.Sort(); 
      } 
     } 
    } 
    foreach (int i in ListOfInts) 
    { 
     resultTextBox.Text += i.ToString(); 
    } 
} 
catch (Exception Error) 
{ 
    resultTextBox.Text = Error.Message; 
} 
+0

那麼什麼樣的價值觀是你在你的第一和secondText箱獲得分割字符串,然後循環。是多個數字還是隻有一個? –

+1

用戶如何在文本框中輸入數字?任何分隔符? – Arran

+0

@Arran是的,我需要弄清楚如何輸入由昏迷分開的值。 –

回答

1
char separator=','; 
int temp=-1; 
var list1=firstTextBox.Split(new char[]{separator}) 
         .Where(n=>int.TryParse(n,out temp)) 
         .Select(n=>temp); 
var list2=secondTextBox.Split(new char[]{separator}) 
         .Where(n=>int.TryParse(n,out temp)) 
         .Select(n=>temp); 
var common=list1.Intersect(list2); 
+0

@downvoter如果有什麼我可以改善讓我知道.. – Anirudha

+0

嘿,什麼是n指代在這個lambda表達式中?我理解我和s,但n對我而言是相當新的 –

+0

@ХристоХристо n是一個參數。在這種情況下,它是一個字符串 – Anirudha

0

如果他們是用逗號分隔,然後通過數組

char[] split = new char[] { ',' }; 
StringSplitOptions options = StringSplitOptions.RemoveEmptyEntries; 

string[] first = ConjTextBox.Text.Split(split, options); 
string[] second = DisjTextBox.Text.Split(split, options); 

int[] intsInFirstTextBox = Array.ConvertAll(first, s => int.Parse(s)); 
int[] intsInSecondTextBox = Array.ConvertAll(second, s => int.Parse(s)); 

int[] ListOfInts = intsInFirstTextBox.Intersect(intsInSecondTextBox); 
+0

嘿,我非常感謝你回答你能解釋我爲什麼你做一個「分裂」字符的陣列? –

+0

只是爲了便於參考,因爲它的使用兩次 – hunter

相關問題