C# Linq查询未按预期工作
我正在学习Linq,我正在尝试获取索引大于单词长度的所有单词 由于某种原因,我得到了一张空名单。or、pas、grae的索引大于长度。但我没有得到结果。我缺少什么?尝试使用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
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();