in sdk/csharp/libraries/microsoft.bot.solutions/Responses/SpeechUtility.cs [90:148]
private static string ListToSpeechReadyString(string parentString, List<string> selectionStrings, ReadPreference readOrder, int maxSize)
{
var result = $"{parentString} " ?? string.Empty;
List<string> itemDetails = new List<string>();
int readSize = Math.Min(selectionStrings.Count, maxSize);
if (readSize == 1)
{
itemDetails.Add(selectionStrings[0]);
}
else
{
for (var i = 0; i < readSize; i++)
{
var readFormat = string.Empty;
if (i == 0)
{
if (readOrder.Equals(ReadPreference.Chronological))
{
readFormat = CommonStrings.LatestItem;
}
else
{
readFormat = CommonStrings.FirstItem;
}
}
else
{
if (i == readSize - 1)
{
readFormat = CommonStrings.LastItem;
}
else
{
if (i == 1)
{
readFormat = CommonStrings.SecondItem;
}
else if (i == 2)
{
readFormat = CommonStrings.ThirdItem;
}
else if (i == 3)
{
readFormat = CommonStrings.FourthItem;
}
}
}
var selectionDetail = string.Format(readFormat, selectionStrings[i]);
itemDetails.Add(selectionDetail);
}
}
result += itemDetails.ToSpeechString(CommonStrings.And);
return result;
}