删除不同间距的重复字符串的最佳方法?

时间:2016-09-17 01:27:38

标签: c# string duplicates

我有一个包含一些重复项的字符串列表。它们不是完全重复的,因为有些包含不同位置的空格。列表示例:

best shoes for flat feet
bestshoes for flat feet
best shoesfor flatfeet
best shoes for flatfeet

现在我想要做的是删除所有这些重复的字符串,只保留带有MOST空格的字符串(我们假设这是正确的间距)。

有人可以推荐我一种方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

  • 首先构建一个"规范"通过删除所有空格(here is how to do it
  • 从每个字符串中获取版本
  • 使用规范版本作为分组字符串的键
  • 在同一组中选择最长的字符串

您可以使用LINQ' GroupBy

var res = orig
    .GroupBy(s => Regex.Replace(s, @"\s+", ""))
    .Select(g => g.OrderByDescending(s => s.Length).First())
    .ToList();