我只想查看用户在数组中输入的邮政编码,但是我收到错误;请帮助。
这是我的代码:
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 []'不包含'包含'的定义和 最好的扩展方法重载' Queryable.Contains(IQueryable,string)'需要一个类型为“IQueryable' checkzips
H:\ checkzips \ checkzips \ Program.cs 23
答案 0 :(得分:3)
由于f
被声明为object
并且没有zipcodes
属性,因此您的代码无法编译。但是,由于某些原因它似乎会识别f.zipcodes
和int[]
,因此您显然拥有与显示的代码不同的代码,这会导致您指出的错误。
问题是Console.ReadLine()
返回string
并且您不能通过传递字符串值来对整数集合使用Contains
。
由于您正在处理邮政编码,因此将它们存储为字符串而不是整数更为合适,因为它们可以以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()
表示您没有捕获输入。我怀疑你在调试过程中会发现这一点,但我想我会指出它。