С# как присоединиться к списку с delim, например, List <string> strList;, затем strList.Join( "," )
List<string> strList = new List<string>();
strList.Add("a");
strList.Add("b");
// I want to do this: string joined = strList.Join(",");
// joined = "a,b"
Нужно ли делать расширение из списка или что-то в этом роде? Я предполагаю, что сначала можно проверить, что тип является строкой, а также пытается связать объект Book, если у меня есть ListListList
Спасибо!
--- EDIT
Чтобы уточнить, я просил расширение для List<string>
. извините за путаницу!
Ответы
Ответ 1
Да, вам нужно написать настраиваемое расширение следующим образом:
public static string JoinString
(this IEnumerable<string> source, string separator)
{
return string.Join(separator, source);
}
Это позволит вам называть JoinString
на все, что реализует IEnumerable<string>
(например, List<string>
):
string joined = strList.JoinString(",");
Обратите внимание, что это конкретный ответ .NET 4 - если вы используете .NET 3.5, то метод расширения должен выглядеть следующим образом:
public static string JoinString
(this IEnumerable<string> source, string separator)
{
return string.Join(separator, source.ToArray());
}
Ответ 2
Вы пробовали это:
List<string> strList = new List<string>();
strList.Add("a");
strList.Add("b");
string joined = string.Join(",", strList);
String.Join принимает IEnumerable, поэтому нет необходимости писать специальный метод расширения или преобразовывать в массив через ToArray().
Ответ 3
если вам нужно присоединиться, вы можете использовать этот код
string line = string.Join(",", strList.ToArray());
Console.WriteLine(line);
и вам нужно указать пример вашей книги и строкового объекта, если вы хотите условие