El problema:
Escribir una funcion que tome un IEnumerable
(1) Si la secuencia esta vacia, regresar "{}".
(2) Si la secuencia contiene un solo elemento "ABC" el resultado sera "{ABC}".
(3) Si la secuencia contiene 2 elementos "ABC", "DEF" El resultado sera "{ABC and DEF}".
(4) Si la secuencia contiene mas de 2 elementos "ABC", "DEF", "G", "H" el resultado sera "{ABC, DEF, G and H}". (Noten que los ultimos 2 elementos no estan unidos por coma)
static string JoinStrings(IEnumerable<string> strings) {
int len = strings.Count();
return "{"+(
(len > 1) ?
strings.Take(len - 1)
.Aggregate((string head, string tail) => head+", "+tail)+
" and " +strings.Last()
: (len == 1) ?
strings.First()
: "")+
"}";
}
static string JoinStrings2(IEnumerable<string> strings) {
return strings.Count() > 0 ?
strings.Aggregate((string h, string t) => h+", "+t)
:
"";
}
No comments:
Post a Comment