public static LinkedListNode <T> FindFirst <T>(this LinkedList <T> list, LinkedListNode <T> startNode, Predicate <T> match)
        {
            foreach (var node in startNode.GetNodes())
            {
                var value = node.Value;
                if (match(value))
                {
                    return(node);
                }
            }

            return(null);
        }