protected static FrequencySet<string> CombineAndClip(FrequencySet<string> a, FrequencySet<string> b, int clip)
{
FrequencySet<string> result = new FrequencySet<string>();
foreach (KeyValuePair<string, StrongBox<int>> entry in a)
{
for (int i = 0; i < entry.Value.Value; i++)
{
result.Add(entry.Key);
}
}
foreach (KeyValuePair<string, StrongBox<int>> entry in b)
{
for (int i = 0; i < entry.Value.Value; i++)
{
result.Add(entry.Key);
}
}
foreach (KeyValuePair<string, StrongBox<int>> entry in result)
{
entry.Value.Value = Math.Min(entry.Value.Value, clip);
}
return result;
}