Looks like FStringTable::EnumerateSourceStrings is what you’re looking for.
Here is an example of usage:
void FStringTableEditor::RefreshCachedStringTable(const FString& InCachedSelection)
{
CachedStringTableEntries.Reset();
TSharedPtr<FCachedStringTableEntry> SelectedStringTableEntry;
UStringTable* StringTable = Cast<UStringTable>(GetEditingObject());
if (StringTable)
{
StringTable->GetStringTable()->EnumerateSourceStrings([&](const FString& InKey, const FString& InSourceString)
{
TSharedRef<FCachedStringTableEntry> NewStringTableEntry = MakeShared<FCachedStringTableEntry>(InKey, InSourceString);
if (EntryTextFilter->PassesFilter(NewStringTableEntry))
{
CachedStringTableEntries.Add(NewStringTableEntry);
}
if (InCachedSelection.Equals(InKey, ESearchCase::CaseSensitive))
{
SelectedStringTableEntry = NewStringTableEntry;
}
return true; // continue enumeration
});
}
// other code