一、引入
在循环播放语音或者视频列表的时候,如何获取下一条要播放的内容?
二、SkipWhile(condition)
满足给定的condition条件的item会被跳过,当出现不满足条件的item时,取该item和它之后的所有items
三、代码实现
/// <summary>
/// 在一个列表中,获取【给定元素】的下一个元素,如果【给定元素】是最末尾的元素,【下一个元素】为列表的第一个元素
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="t"></param>
/// <returns></returns>
public static T GetNext<T>(List<T> list, T t)
{
var subList = list.SkipWhile(x => !x.Equals(t)).Skip(1);//SkipWhile——凡是满足给定条件的item都会被忽略
return subList.Count() == 0 ? list[0] : subList.First();
}
四、测试
测试环境:JUPYTER NOTEBOOK