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

问题描述 投票:1回答:1

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

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

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

有谁能推荐我一种方法来实现这一目标?

c# string duplicates
1个回答
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();
© www.soinside.com 2019 - 2024. All rights reserved.