Для этого вы можете использовать функцию String.Join(string glue, string[] array);
.
string values = String.Join(", ", myList.ToArray());
Надеюсь, это поможет. ( Примечание: myList
- это список, который у вас уже есть в вашем приложении.)
Обновление: Заметили, что ваши и слишком поздно, мои извинения, вот небольшое обновление:
string values = String.Join(", ", myList.Take(myList.Count - 1))
+ " and " + myList.Last();
В качестве альтернативы (или, может быть, даже лучше) вы можете использовать для этого StringBuilder
вместо конкатенации строк. ( Помните: Вам все равно придется проверить, есть ли в списке только одно значение.)
Обновление: вот простой метод расширения.
public static string SmartJoin(this List<string> items, string lastSeparator)
{
string values = "";
if(!items.Any())
{
return "";
}
if (items.Count > 1)
{
values = String.Format("{0} {1} {2}",
String.Join(", ", items.Take(items.Count - 1)),
lastSeparator,
items.Last());
}
else
{
values = items.First();
}
return values;
}
И это можно назвать как
string values = myList.SmartJoin("and");