C# 检查一个元素是否包含在两个不同的数组中

C# 检查一个元素是否包含在两个不同的数组中,c#,C#,我试图创建一个简单的计算器来显示哪些整数包含在两个数组中,所有的数字都是由用户键入的。我如何获得完整的数字,因为我认为当我进行foreach循环时,它读取的是数字,例如49,它读取的是4和9,而不是49?我如何解决这个问题?我错在哪里 string firstTextBox = ConjTextBox.Text; string secondTextBox = DisjTextBox.Text; int intsInFirstTextBox; int intsInSecondTextBox; Li

我试图创建一个简单的计算器来显示哪些整数包含在两个数组中,所有的数字都是由用户键入的。我如何获得完整的数字,因为我认为当我进行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;
}
stringfirstTextBox=ConjTextBox.Text;
字符串secondTextBox=DisjTextBox.Text;
int intsInFirstTextBox;
int-intsinsecond文本框;
List LISTOFITS=新列表();
尝试
{
foreach(第一个文本框中的字符c)
{
intsInFirstTextBox=Convert.ToInt32(c);
foreach(第二个文本框中的字符q)
{
intsInSecondTextBox=Convert.ToInt32(q);
如果(intsInFirstTextBox==intsInSecondTextBox)
{
添加列表(intsInFirstTextBox);
list of its.Sort();
}
}
}
foreach(列表中的int i)
{
resultTextBox.Text+=i.ToString();
}
}
捕获(异常错误)
{
resultTextBox.Text=Error.Message;
}

如果它们是逗号分隔的,则拆分字符串,然后在数组中循环

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

那么,您在第一个和第二个文本框中得到了什么样的值呢。是多个数字还是只有一个。用户如何在文本框中输入数字?有分隔符吗?@Arran是的,我需要弄清楚如何输入由coma分隔的值。你说有两个数组,但只有一个?你有一个“foreach(char c…)”循环,你很惊讶它的读数是4和9,而不是49?嘿,我真的很感谢你的回答。你能解释一下为什么要制作一个“split”数组吗char?只是为了方便参考,因为它被用于两次,在这个lambda表达式中,n指的是什么?我理解I和s,但n对我来说是非常新的@аааааааааааааа
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);