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