string[] words = { "apple", "banana", "mango", "or", "pas", "grae" };
var result1 = words.TakeWhile((word, index) => index > word.Length ).ToList();
我正在学习Linq,我正在尝试获取索引比单词长度更重要的所有单词。
由于某种原因,我得到空列表。或者,pas,grae的指数大于长度。但我没有得到结果。我错过了什么?
答案 0 :(得分:3)
您正在寻找Where()
- TakeWhile()
将在谓词第一次评估为false时停止迭代(如名称所暗示的那样),这就是第一个单词的情况,因此您得到一个空列表。
var result1 = words.Where((word, index) => index > word.Length)
.ToList();
答案 1 :(得分:2)
尝试使用
var result1 = words.Where((word, index) => index > word.Length ).ToList();
代替。
当条件为真时,TakeWhile将从列表中选择元素。
答案 2 :(得分:0)
我认为你可以在这里学习101 Linq样本的基本技能:
http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b/viewsamplepack