使用Linq查找集合中指定元素后的元素我有一个有序的人员列表。我有一个我认识的人存在于该系列中。如何确定名单上的下一个人?你可以这样做:IEnumerablepersons=..varfirstPersonAfterJack=persons.SkipWhile(p=>p.Name!="Jack").ElementAt(1);//Zero-indexed,meanssecond思路是生成一个序列,导致元素被跳过,直到满足条件,然后取出序列的第二个元素。如果不能保证查询会返回结果(例如,从未找到匹配项,或者是序列的最后一个元素),您可以将ElementAtOrDefault替换为ElementAt,然后执行null测试以检查是否成功。我注意到你在问题中说你有一个有序的人员列表。如果您能更详细地解释这意味着什么,我们可能会提供更好的答案(例如,我们可能不必对序列进行线性搜索)。SkipWhile是一种采用谓词并跳过所有内容直到谓词为假的方法。它返回该元素及其之后的所有内容。varremainingPeople=collectionOfPeople.SkipWhile(p=>!isThePerson(p));if(remainingPeople.Count()==1){//这个人是列表中的最后一个。}varnextPerson=remainingPeople.Skip(1).First();其中isThePerson是一个方法,它接受一个人,如果是你感兴趣的人就返回true。以上是C#学习教程:使用Linq查找集合中指定元素之后的元素共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表作品如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
