我对 C# 很陌生,作为练习练习,我试图将 Y 和 N 的控制台输入转换为 true 和 false 的布尔数组(Y=true N=false)。
我收到“只有赋值调用、递增、递减、等待和新对象表达式可以用作语句”错误。有什么建议么?
这有效并且更简单一些。
var array = Console.ReadLine().Select(x => x == 'y');
我相信这是因为您正在使用列表和数组。那是我在尝试您的方法时遇到的错误。
尝试:
bool[] tempArray = Console.ReadLine().ToList().ConvertAll(ch => Char.Equals(ch, 'Y')).ToArray();
Lambda 不需要在声明中指定其参数的类型,它们是自动推断的。您还需要将bool
s 列表转换为带有ToArray
.
bool[] tempArray = Console.ReadLine().Select(ch => ch == 'Y').ToArray();
为了使它没有错误:
var bools = Console.ReadLine().Where(x => Char.ToUpperInvariant(x) == 'Y' || Char.ToUpperInvariant(x) == 'N').Select(x => x == 'Y');