/// <summary>シーケンス内に条件を満たす要素が存在する場合、最初に見つかった要素の位置へ移動する。</summary> /// <typeparam name="T">要素の型</typeparam> /// <param name="scroller">対象インスタンス</param> /// <param name="predicate">条件</param> /// <returns>結果</returns> public static ResultWithValue <IElementScroller <T> > MaybeFirst <T>(this IElementScroller <T> scroller, Predicate <T> predicate) { if (scroller.GetSequence().Any(x => predicate(x))) { return(new ResultWithValue <IElementScroller <T> >(scroller.First(predicate))); } else { return(new ResultWithValue <IElementScroller <T> >(false, scroller)); } }