显示C#中使用三元运算符的整数数组的包含
本文关键字:运算符 三元 整数 包含 数组 显示 | 更新日期: 2023-09-27 18:22:30
我只想检查用户在数组中输入的邮政编码是否正确,但我遇到了错误;请帮忙。
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace checkzips
{
class Program
{
public static object f;
public static void Main(string[] args)
{
// create an integer array for package delivery service
int[] zipcodes = { 07847, 07848, 07866, 07801, 07808, 07898, 07836, 07854, 07823, 07845 };
// display original values of array
Console.WriteLine("All zip codes to which the company delivers packages:");
foreach (var elements in zipcodes)
Console.WriteLine("{0}", elements);
// prompt a user to enter a zip code
Console.WriteLine("Enter a zipcode:");
Console.ReadLine();
// search the array using foreach loop
Console.WriteLine("", f.zipcodes.Contains(Console.ReadLine()) ? string.Empty : "not");
}
}
}
我在上一个Console.WriteLine
语句中得到一个错误:
错误CS1929"int[]"不包含"Contains"的定义,并且最佳扩展方法重载"Queryable.Contains(IQueryable,string)"需要类型为"IQueryable'checkzips"的接收器
H: ''checkzips''checkzips ''Program.cs 23
发布时,由于f
被声明为object
,并且没有zipcodes
属性,因此您的代码不会编译。然而,由于某种原因,它似乎将f.zipcodes
识别为int[]
,因此显然您的代码与显示的代码不同,这导致了您指示的错误。
问题是Console.ReadLine()
返回string
,并且不能通过向整数集合传递字符串值来对其使用Contains
。
由于您处理的是ZIP代码,因此将它们存储为字符串而不是整数更合适,因为它们可以以0
开头并包含非数字字符(-
)。我怀疑你想要:
string[] zipcodes = { "07847", "07848", "07866", "07801", "07808", "07898", "07836","07854", "07823", "07845" };
...
string zip = Console.ReadLine();
Console.WriteLine("",f.zipcodes.Contains(zip) ? string.Empty : "not");
请注意,最好将Console.ReadLine
放在WriteLine
之外,这样可以验证输入,提高调试能力等。
还要注意,您有一个杂散Console.ReadLine()
,您没有捕获它的输入。我怀疑你会在调试过程中发现这一点,但我想我会指出这一点。