TakeWhile中的Lambda表达式

freeflying1222 2010-02-11 03:11:12

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
IEnumerable<int> greaterThanSix =
numbers.TakeWhile(number => number > 4);

foreach (int item in greaterThanSix)
{
Console.WriteLine(item);
}

怪了, 我只能得到“5”?感觉没有迭代遍历呀!
...全文
152 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2010-02-11
  • 打赏
  • 举报
回复
应该用Where方法而不是TakeWhile
鸭梨山大帝 2010-02-11
  • 打赏
  • 举报
回复
MSDN:
Enumerable..::.TakeWhile 方法
只要满足指定的条件,就会返回序列的元素,然后跳过剩余的元素。
鸭梨山大帝 2010-02-11
  • 打赏
  • 举报
回复

int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var greaterThanSix = from m in numbers
where m > 4
select m;

foreach (var item in greaterThanSix)
{
Console.WriteLine(item);
}
freeflying1222 2010-02-11
  • 打赏
  • 举报
回复
自己突然懂了,呵呵
来就送分了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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