3

我对 C# 很陌生,作为练习练习,我试图将 Y 和 N 的控制台输入转换为 true 和 false 的布尔数组(Y=true N=false)。

在此处输入图像描述

我收到“只有赋值调用、递增、递减、等待和新对象表达式可以用作语句”错误。有什么建议么?

4

4 回答 4

1

这有效并且更简单一些。

var array = Console.ReadLine().Select(x => x == 'y');

我相信这是因为您正在使用列表和数组。那是我在尝试您的方法时遇到的错误。

于 2012-10-27T20:13:55.783 回答
1

尝试:

bool[] tempArray = Console.ReadLine().ToList().ConvertAll(ch => Char.Equals(ch, 'Y')).ToArray();

Lambda 不需要在声明中指定其参数的类型,它们是自动推断的。您还需要将bools 列表转换为带有ToArray.

于 2012-10-27T20:15:20.380 回答
1
bool[] tempArray = Console.ReadLine().Select(ch => ch == 'Y').ToArray();
于 2012-10-27T20:15:30.913 回答
0

为了使它没有错误:

var bools = Console.ReadLine().Where(x => Char.ToUpperInvariant(x) == 'Y' || Char.ToUpperInvariant(x) == 'N').Select(x => x == 'Y');
于 2012-10-27T20:32:36.257 回答