С# как присоединиться к списку с 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); 

и вам нужно указать пример вашей книги и строкового объекта, если вы хотите условие