【问题标题】:Check if 2 array elements are equal and print yes if so, and no if it isn't for each check检查 2 个数组元素是否相等,如果相等则打印 yes,如果不是每次检查则打印 no
【发布时间】:2019-11-28 20:48:19
【问题描述】:

我想检查数组中的 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");
            }
        }
    }
}

【问题讨论】:

  • 您正在为每个组合打印一行输出,例如元素 0 对每个元素 1、2、3、4、5 ......然后元素 1 对每个元素 2、3、4、5 等。如果 no 数组中的其他元素是否等于您正在检查的元素?
  • 您的主要目标是什么:如果数组有重复项,则只为数组的每个元素打印因此对于6个名称 将打印 6 行 ,每行带有 YesNo ?

标签: c# arrays string element equality


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多