C# Linq查询未按预期工作

C# Linq查询未按预期工作,c#,linq,C#,Linq,我正在学习Linq,我正在尝试获取索引大于单词长度的所有单词 由于某种原因,我得到了一张空名单。or、pas、grae的索引大于长度。但我没有得到结果。我缺少什么?尝试使用 string[] words = { "apple", "banana", "mango", "or", "pas", "grae" }; var result1 = words.TakeWhile((word, index) => index > word.Length ).T

我正在学习Linq,我正在尝试获取索引大于单词长度的所有单词

由于某种原因,我得到了一张空名单。or、pas、grae的索引大于长度。但我没有得到结果。我缺少什么?

尝试使用

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

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

TakeWhile将在条件为true时从列表中选择元素。

您正在查找Where-TakeWhile将在谓词第一次计算为false时停止迭代,正如名称所示,第一个单词就是这种情况,因此您得到的列表为空

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

我认为您可以从这里的101个Linq示例中学习基本技能:

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