C# 关于lambda表达式的研究

C# 关于lambda表达式的研究,c#,lambda,C#,Lambda,我正在对列表中的每个整数进行平方运算。这是代码 class SomeIntgs { List<int> newList = new List<int>(); public List<int> get() { IEnumerable<int> intrs = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 }; newList.AddRange(intrs);

我正在对列表中的每个整数进行平方运算。这是代码

class SomeIntgs
{
    List<int> newList = new List<int>();

    public List<int> get()
    {
        IEnumerable<int> intrs = new int[] { 1, 2, 3, 4, 5, 6, 7, 8 };
        newList.AddRange(intrs);
        return newList;

    }
}
错误:“无法将lambda表达式转换为bool类型”

请帮忙


另外,请帮助我,在一般情况下如何处理lambda

您不需要
where
,请尝试以下操作:

SomeIntgs stg = new SomeIntgs();
var qry = from n in stg.get() select n*n;


可枚举。其中
用于从序列中筛选元素-您真正想做的是投影一个新的元素序列,如我上面所示。

您不需要
其中
,请尝试以下操作:

SomeIntgs stg = new SomeIntgs();
var qry = from n in stg.get() select n*n;
SomeIntgs stg = new SomeIntgs();
var qry = from n in stg.get() select n*n;


可枚举。Where
用于从序列中筛选元素-您真正想要做的是投影一个新的元素序列,如我上面所示。

Where子句采用的lambda指定如何匹配
IQueryable
中的项。IQueryable中满足您提供的表达式的任何成员都将被返回。(这就是编译器抱怨bools的原因)

SomeIntgs stg = new SomeIntgs();
var qry = from n in stg.get() select n*n;
正如其他人所提到的,您可以删除where子句来平方列表中的每个项目

var ints = new int []{1,2,3,4,5,6,7,8};
var squares = ints.Select(x => x*x);
var evenSquares = ints.Where(x => (x % 2) == 0).Select(x => x*x); // only square 
                                                     //the even numbers in the list

where
子句采用的lambda指定了如何匹配
IQueryable
中的项目。IQueryable中满足您提供的表达式的任何成员都将被返回。(这就是编译器抱怨bools的原因)

正如其他人所提到的,您可以删除where子句来平方列表中的每个项目

var ints = new int []{1,2,3,4,5,6,7,8};
var squares = ints.Select(x => x*x);
var evenSquares = ints.Where(x => (x % 2) == 0).Select(x => x*x); // only square 
                                                     //the even numbers in the list

我还没有看到任何linq查询使用这样的lambda表达式,这不会也失败吗?我收到了错误,因为“select子句中表达式的类型不正确”@russeludana。。。试试我的,就像我之前提到的,那是v。对于linq查询来说很奇怪,我认为这是错误的……只是对使用的语法有一些混淆。:)我修复了它。@280Z28-这就是我在未经测试的情况下发布的内容-谢谢!)我还没有看到任何linq查询使用这样的lambda表达式,这不会也失败吗?我收到了错误,因为“select子句中表达式的类型不正确”@russeludana。。。试试我的,就像我之前提到的,那是v。对于linq查询来说很奇怪,我认为这是错误的……只是对使用的语法有一些混淆。:)我修复了它。@280Z28-这就是我在未经测试的情况下发布的内容-谢谢!)我对在这里应用lambda很挑剔。@russeludana你在那里不需要lambda,也许你应该更具体地解释一下你想要实现什么?我对在这里应用lambda很挑剔。@russeludana你在那里不需要lambda,也许你应该更具体地解释一下你想要实现什么?当我在stg.get()中使用var evensquares=from-even时,我得到了一个错误。其中(x=>(x%2)==0)。选择(x=>x*x);错误:查询必须以select子句或group子句结束。我找到了表单子句需要选择的解决方案。我得到了它并更改了coe。谢谢。当我在stg.get()中使用var evensquares=from even时,我遇到了错误。其中(x=>(x%2)==0)。select(x=>x*x);错误:查询必须以select子句或group子句结尾。我找到了表单子句需要select的解决方案。我得到了它并更改了coe。谢谢克里斯