Я даже не знаю, с чего начать, например, какие методы из Linq использовать, но у меня есть пример.
Если строка будет "xxyxxz", это будет вывод (хотя и не обязательно в этом порядке):
"xxyxxz"
x x y x x z xx xx xyx xxyxx
Кто-нибудь знает, как это решить?
Если строка не очень длинная, вы можете попробовать перебор : перечислить все подстроки и отфильтровать палиндромы. Давайте для этого реализуем чистый Linq :
using System.Linq; ... string source = "xxyxxz"; var result = Enumerable .Range(1, source.Length) // all substrings' lengths .SelectMany(length => Enumerable // all substrings .Range(0, source.Length - length + 1) .Select(i => source.Substring(i, length))) .Where(item => item.SequenceEqual(item.Reverse())) // Linq to test for palindrome .ToArray(); // Let's have an array of required substrings // Let's have a look at the result: Console.Write(string.Join(" ", result));
Результат: