将Lambda表达式与List.ConvertAll一起使用

时间:2012-10-27 20:09:39

标签: c# lambda

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

enter image description here

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

4 个答案:

答案 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');