Csharp/C#教程:使用Linq在集合中的指定元素之后查找元素分享


使用Linq在集合中的指定元素之后查找元素

我有一份有序的人员名单。 我有一个我认识的人存在于该系列中。 如何确定列表中的下一个人?

你可以这样做:

IEnumerable persons = .. var firstPersonAfterJack = persons.SkipWhile(p => p.Name != "Jack") .ElementAt(1); //Zero-indexed, means second 

我们的想法是生成一个序列,导致跳过元素直到满足条件,然后获取该序列的第二个元素。

如果无法保证查询将返回结果(例如,从未找到匹配项,或者是序列的最后一个元素),则可以使用ElementAt替换ElementAtOrDefault ,然后执行null -test以检查是否成功。

我注意到你在问题中说你有一个有序的人员名单。 如果您能够更详细地解释这意味着什么,我们可能能够提供更好的答案(例如,我们可能不必对序列进行线性搜索)。

SkipWhile是一种方法,它接受谓词并跳过所有内容,直到谓词为假。 它返回该元素和之后的所有内容。

 var remainingPeople = collectionOfPeople.SkipWhile(p => !isThePerson(p)); if (remainingPeople.Count() == 1) { // the person was the last in the list. } var nextPerson = remainingPeople.Skip(1).First(); 

其中isThePerson是一个接受一个人的方法,如果它是你感兴趣的人,则返回true。

上述就是C#学习教程:使用Linq在集合中的指定元素之后查找元素分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1039042.html

(0)
上一篇 2022年1月26日
下一篇 2022年1月26日

精彩推荐