Wie kann ich alle Wörter, die in einer Liste von Strings häufig vorkommen, extrahieren?C# Finden Sie alle gängigen Teilstrings in Liste <string>
Beispiel:
//Output = Bammler GOV
"Bammler Tokyo SA GOV"
"Zurich Bammler GOV"
"London Bammler 12 GOV"
"New Bammler York GOV"
Ich habe versucht, folgende:
static void Main(string[] args)
{
List<string> MyStringList = new List<string>()
{
"Bammler Tokyo SA GOV",
"Zurich Bammler GOV",
"London Bammler 12 GOV",
"New Bammler York GOV"
};
string shortest = MyStringList.OrderBy(s => s.Length).First();
IEnumerable<string> shortestSubstrings = getAllSubstrings(shortest).OrderByDescending(s => s.Length);
var other = MyStringList.Where(s => s != shortest).ToArray();
string longestCommonIntersection = string.Empty;
foreach (string subStr in shortestSubstrings)
{
bool allContains = other.All(s => s.Contains(subStr));
if (allContains)
{
longestCommonIntersection = subStr;
break;
}
}
}
public static IEnumerable<string> getAllSubstrings(string word)
{
return from charIndex1 in Enumerable.Range(0, word.Length)
from charIndex2 in Enumerable.Range(0, word.Length - charIndex1 + 1)
where charIndex2 >= 2
select word.Substring(charIndex1, charIndex2);
}
fand ich dies hier Find a common string within a list of strings aber dies wird extrahiert nur zum Beispiel "Bammler".
Was hast du probiert? Sie können nicht erwarten, dass wir die ganze Arbeit für Sie erledigen ... – maccettura
StackOverflow funktioniert auf diese Weise - Sie ** versuchen **, Aufgabe alleine zu lösen, und wenn Sie einige Probleme haben (Fehler oder unerwartete Ergebnisse), dann Sie Geben Sie ** Problembeschreibung **, Ihren aktuellen ** Code ** und bitten Sie die Leute, Ihnen zu helfen. –