/// <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));
     }
 }