Removing Substrings from List
You can simplify your code to this:

var palindromesCopy = palindromes.ToList();
palindromes.RemoveAll(x =&gt; palindromesCopy.Any(y =&gt; x != y &amp;&amp;
                                               y.Contains(x)));


If you want to remove duplicated strings as said by @MoonKnight in comments, just call Distinct on palindromes after removing.