如何显示和计算2个数组中有多少相同的字符

时间:2015-03-04 08:57:47

标签: c# string

守则是这样的:

        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'。此外,我想计算这两个数组中有多少相同的字符。感谢

2 个答案:

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