首页 > 解决方案 > 检查 2 个数组元素是否相等,如果相等则打印 yes,如果不是每次检查则打印 no

问题描述

我想检查数组中的 2 个字符串元素是否相等,如果相等则打印 Yes,如果之前没有将新字符串插入到数组中,则打印 no。问题是,如果我插入 6 个元素,我想打印 6 个 Yes 或 No,但是 Yes 和 No 的数量不等于插入的元素数量。

class Program
{
    static void Main(string[] args)
    {
        int num = Convert.ToInt32(Console.ReadLine());
        string[] names = new string[num];

        for (int i = 0; i < names.Length; i++)
        {
            names[i] = Console.ReadLine();
        }

        for (int i = 0; i < names.Length; i++)
        {
            for (int j = i + 1; j < names.Length; j++)
            {
                if (names[i] == names[j])
                {
                    Console.WriteLine("Yes");
                }
                else
                    Console.WriteLine("No");
            }
        }
    }
}

标签: c#arraysstringelementequality

解决方案


假设您想要“对于列表中的每个项目,如果该项目在列表中出现多次,则打印是/否”:

 Console.Write(String.Join(",",
        names.Select(n => names.Count(x => x == n) > 1 ? "yes" : "no")));

核心部分是给.Count定字符串在数组中出现的次数。


推荐阅读