C# 将自己的字符串与分隔的ArrayList连接
我的ArrayList对象包含3个值C# 将自己的字符串与分隔的ArrayList连接,c#,string,arraylist,C#,String,Arraylist,我的ArrayList对象包含3个值 ArrayList arr=new ArrayList() arr.Add("abc"); arr.Add("def"); arr.Add("ghi"); 我需要用,分隔符分隔这些值 所以,我在谷歌上搜索并得到了解决方案 string afterjoined=string.Join(",", (string[])arr.ToArray(Type.GetType("System.String"))); 上述代码将返回为 abc、def、ghi 但是上面的代
ArrayList arr=new ArrayList()
arr.Add("abc");
arr.Add("def");
arr.Add("ghi");
我需要用,分隔符分隔这些值
所以,我在谷歌上搜索并得到了解决方案
string afterjoined=string.Join(",", (string[])arr.ToArray(Type.GetType("System.String")));
上述代码将返回为
abc、def、ghi
但是上面的代码不允许任何字符串与之连接
我想要一个特定的字符串,它需要与最终的分隔值连接,如下所示
MYabc、MYdef、Myghi
下面是我对现有代码的尝试(不起作用)
这就是您需要的:
string.Join(",",
arr.Cast<string>() // use cast here instead of the casting to reduce the number of ()s
.Select(x => "MY" + x))
如果需要此功能,我会使用此扩展方法(通常与generic
IEnumerable
,为ArrayList
修改):
public static string MergeWithPrefix(this ArrayList list, string prefix, string separator = ";")
{
var sb = new StringBuilder(list.Count * 16);
foreach (var item in list)
sb.Append(prefix).Append(item).Append(separator);
sb.Remove(sb.Length - separator.Length, separator.Length);
return sb.ToString();
}
您使用
ArrayList
而不是List
有什么原因吗?实际上,我正在开发一个SSIS包。因此,我必须使用ArrayList读取文件中的所有行
List<string> arr=new List<string>();
arr.Add("abc");
arr.Add("def");
arr.Add("ghi");
string joined = string.Join(",", arr.Select(x => "MY" + x));
public static string MergeWithPrefix(this ArrayList list, string prefix, string separator = ";")
{
var sb = new StringBuilder(list.Count * 16);
foreach (var item in list)
sb.Append(prefix).Append(item).Append(separator);
sb.Remove(sb.Length - separator.Length, separator.Length);
return sb.ToString();
}