检查2个数组元素是否相等,如果相等,则打印是,如果不是每次检查都打印,则不打印

问题描述 投票:-2回答:2

我想检查数组中的两个字符串元素是否相等,如果是,则打印是,如果以前没有将新字符串插入数组,则打印否。问题是我要插入6个元素,要打印6个“是”或“否”,但是“是”和“否”的数量不等于插入的元素的数量。

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# arrays string element equality
2个回答
0
投票

对于6个元素,您要进行15次检查; 5 + 4 + 3 + 2 + 1 + 0,因此您将获得15个是或否。


0
投票

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

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

[核心部分是.Count给定字符串在数组中发生了多少次。

© www.soinside.com 2019 - 2024. All rights reserved.