c# - 检查 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");
}
}
}
}
解决方案
假设您想要“对于列表中的每个项目,如果该项目在列表中出现多次,则打印是/否”:
Console.Write(String.Join(",",
names.Select(n => names.Count(x => x == n) > 1 ? "yes" : "no")));
核心部分是给.Count
定字符串在数组中出现的次数。
推荐阅读
- html - 从 html 节点中的类 SVG html 中提取数值 - R
- rust - 从单个链表中删除重复项
- android - 如何从孟加拉国创建 Firebase 计费配置文件
- swift - 在 swift ios 中出现错误 zipfail 错误
- javascript - 在 Grunt 中复制特定目录名称格式下的所有文件?
- java - 我的 java 依赖服务器似乎正在运行,但我无法在浏览器中以 localhost 的身份打开它
- html - 在角度组件中加载外部 html
- r - 如何使用 ggraph 正确绘制箭头
- javascript - 在 nodemailer 电子邮件中发送 html
- android - 将带有 proguard 的 Android 项目迁移到 R8,缺少 rt.java 文件,Android Studio 4.2