关于where方法的使用

shijies 2021-05-05 09:14:58
1、public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);
2、public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, int,bool> predicate);
有几个疑问:
1、Where方法的参数是Function<T,bool>类型的委托,这个委托就是predicate?是这个意思?
2、看书上的示例,如下:
int sum1 = nums.Where(n=>n%4==0).Sum();
在nums后面有点操作符,属于调用集合对象的方法。
有时却没有使用点操作符,例如:
var result = from b in ds.Tables["tb_Bookinfo"].AsEnumerable() where b.Field<DateTime>("b_pub_date").Month ==3
aelect new
{
......

}

...全文
2486 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2021-05-06
  • 打赏
  • 举报
回复
1、Where方法的参数是Function<T,bool>类型的委托,这个委托就是predicate?是这个意思? 以下3中委托的封装: Action 代表void 无返回值, Function,代表有返回值 Predicate ,代表返回bool值。 2、看书上的示例,。。。。。。。。。 第一个是 lambda 写法 第二个是 linq 写法 写法不同。
shijies 2021-05-06
  • 打赏
  • 举报
回复
使用LINQ对DataSet进行筛选时, where的用法等同于查询表达式的用法,而不是函数了。
shijies 2021-05-05
  • 打赏
  • 举报
回复
where (查询表达式) 除了用于泛型约束之外,where还常用于查询表达式。
shijies 2021-05-05
  • 打赏
  • 举报
回复
在第二种情况下,用法像是SQL语句,而不像函数。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧