守则是这样的:
string a = txtInput.Text.ToLower();
string b = txtInput2.Text.ToLower();
char[] arraya = a.ToCharArray();
char[] arrayb = b.ToCharArray();
var ar = arrayb.Where(arraya.Contains);
//bool equals = ;
foreach (char i in ar)
{
txtAnalisa.Text = i + "\n";
}
但是txtAnalisa只打印1个字符。我想显示所有相同的值(属于arrayb和arraya。
示例=
如果值为qweq,和 如果b值为qweqwea,
txtAnalisa的结果是'qweq'。此外,我想计算这两个数组中有多少相同的字符。感谢
答案 0 :(得分:2)
txtAnalisa.Text = i + "\n";
在循环的每次迭代中,您都会覆盖txtAnalisa.Text
的值。你可能想要这样的东西:
txtAnalisa.Text += i + "\n";
您可以使用.Count()
扩展方法计算数组的长度。
答案 1 :(得分:1)
实际上,您不需要使用foreach
循环。您可以尝试 String.Join()
:
txtAnalisa.Text = String.Join("\n", a.Where(x => b.Contains(x)));
如果您想获得第二个数组中包含的不同字符的数量,那么如果您不想要,可以使用Distinct().Count()
或Count()
:
var resultCount = a.Distinct().Count(x => b.Contains(x));