diff --git a/src/Microsoft.ML.Transforms/Text/NgramTransform.cs b/src/Microsoft.ML.Transforms/Text/NgramTransform.cs index 1cbc63dea2..1af720e966 100644 --- a/src/Microsoft.ML.Transforms/Text/NgramTransform.cs +++ b/src/Microsoft.ML.Transforms/Text/NgramTransform.cs @@ -544,17 +544,14 @@ private void GetSlotNames(int iinfo, int size, ref VBuffer> Host.Assert(n >= 0); // Get the unigrams composing the current n-gram. - ComposeNgramString(ngram, n, sb, keyCount, - unigramNames.GetItemOrDefault); + ComposeNgramString(ngram, n, sb, keyCount, in unigramNames); dstEditor.Values[slot] = sb.ToString().AsMemory(); } dst = dstEditor.Commit(); } - private delegate void TermGetter(int index, ref ReadOnlyMemory term); - - private void ComposeNgramString(uint[] ngram, int count, StringBuilder sb, int keyCount, TermGetter termGetter) + private void ComposeNgramString(uint[] ngram, int count, StringBuilder sb, int keyCount, in VBuffer> terms) { Host.AssertValue(sb); Host.AssertValue(ngram); @@ -572,7 +569,7 @@ private void ComposeNgramString(uint[] ngram, int count, StringBuilder sb, int k sb.Append("*"); else { - termGetter((int)unigram - 1, ref term); + term = terms.GetItemOrDefault((int)unigram - 1); sb.AppendMemory(term); } }