Linq查询无法按预期工作

时间:2012-02-20 04:43:51

标签: c# linq

        string[] words = { "apple", "banana", "mango", "or", "pas", "grae" };

        var result1 = words.TakeWhile((word, index) => index > word.Length ).ToList();

我正在学习Linq,我正在尝试获取索引比单词长度更重要的所有单词。

由于某种原因,我得到空列表。或者,pas,grae的指数大于长度。但我没有得到结果。我错过了什么?

3 个答案:

答案 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