toSentence method
Converts the list into a human-readable sentence.
Supports truncation with a remaining count suffix.
Example:
['A', 'B', 'C', 'D'].toSentence(maxToShow: 2);
// "A, B & 2 others"
Implementation
String toSentence({
int? maxToShow,
String separator = ",",
String lastSeparator = "&",
String suffix = "others",
}) {
maxToShow ??= length;
if (isEmpty || maxToShow <= 0) return "";
if (length == 1) return first.toString();
final show = min(maxToShow, length);
final remaining = length - show;
if (remaining <= 0) {
var out = "";
for (var i = 0; i < show; i++) {
out += this[i].toString();
if (i < show - 2) {
out += "$separator ";
} else if (i == show - 2) {
out += " $lastSeparator ";
}
}
return out;
}
var out = "";
for (var i = 0; i < show; i++) {
out += this[i].toString();
if (i <= show - 2) {
out += "$separator ";
}
}
if (out.isNotEmpty) {
out += " $lastSeparator ";
}
out += "$remaining $suffix";
return out;
}