LINQ-выражение для кратчайшего общего префикса

Может ли кто-нибудь помочь мне с красивым выражением LINQ для преобразования списка строк в другой список, содержащий только самые короткие отдельные общие префиксы для строк? Разделитель для префиксов - . .

Пример: [«A», «ABD», «A», «AB», «E», «FE», «F», «BC»]

Идет к: [«A», «E», «F», «BC»]

Удалено:

  • «ABD» и «AB», поскольку префикс «A» "уже есть в списке
  • " A ", потому что дублируется
  • " FE ", потому что" F "уже в списке

Спасибо!

17
задан abatishchev 28 November 2010 в 20:56
поделиться