我在这里有一个单词“ angoora”,如果用户输入为2,则“ a”出现2次,而“ o”出现2次,则输出应为“ ngr”,函数应删除a和o,因为它在字符串中出现2次。如果用户输入3,则输出应为“ angoora”,因为没有字符出现3次。

我正在这样做,但是我认为这是不正确的方法,因为它不能将我带向我的目标,任何帮助将不胜感激。

public static SortedDictionary<char, int> Count(string stringToCount)
{
    SortedDictionary<char, int> characterCount = new SortedDictionary<char, int>();

    foreach (var character in stringToCount)
    {
        int counter = 0;
        characterCount.TryGetValue(character, out counter);
        characterCount[character] = counter + 1;
    }

    return characterCount;
}

最佳答案

您可以使用此功能

static string Fix(string item, int count)
{
    var chars = item.ToList().GroupBy(g => g).Select(s => new { Ch = s.Key.ToString(), Count = s.Count() }).Where(w => w.Count < count).ToList();
    var characters = string.Join("", item.ToList().Select(s => s.ToString()).Where(wi => chars.Any(a => a.Ch == wi)).ToList());
    return characters;
}

关于c# - 该函数接受字符串输入并删除出现一定次数的所有字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51593197/

10-08 21:25