繁体   English   中英

C#如何使用delim加入列表,例如List <string> strList ;,然后是strList.Join(“,”)

[英]C# how to join a list with delim, e.g., List<string> strList;, then 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"

我是否需要对List或类似的东西进行扩展? 我想如果我有List bookList,它首先可以检查类型是否为字符串,而不是尝试连接Book对象

谢谢!

-编辑

为了澄清起见,我要求扩展List<string> 对困惑感到抱歉!

您是否尝试过:

List<string> strList = new List<string>(); 
strList.Add("a"); 
strList.Add("b"); 
string joined = string.Join(",", strList);

String.Join采用IEnumerable,因此无需编写特殊的扩展方法或通过ToArray()转换为数组。

是的,您必须编写一个这样的自定义扩展:

public static string JoinString
    (this IEnumerable<string> source, string separator)
{
    return string.Join(separator, source);
}

这将允许您在实现IEnumerable<string>任何JoinString上调用JoinString (例如,像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());
}

如果您需要加入,可以使用此代码

    string line = string.Join(",", strList.ToArray());
 Console.WriteLine(line); 

如果需要条件,则需要给出书和字符串对象的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM