-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;
}
4

2 回答 2

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);
于 2013-10-10T14:40:31.550 回答
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);
于 2013-10-10T14:39:54.397 回答