一位朋友告诉我有关将字符串与分隔符组合在一起的函数,而不必担心字符串中是否已存在分隔符,但我无法记住该函数
例如:
var stringArray = new string[]{"windows", "\users", "JohnSmith", "\Documents"};
var tempString = whateverFunction(stringArray, "\")
将字符串加入
tempstring = "windows\users\JohnSmith\Documents"
对此的任何帮助都会很棒,谢谢
答案 0 :(得分:3)
你可能会想到Path.Combine
,但它并没有像你描述的那样工作。
var stringArray = new[] {"windows", "\\users", "JohnSmith", "\\Documents"};
var tempString = Path.Combine(stringArray);
这导致\Documents
,因为它将最后一个作为绝对路径。此方法可以满足您的要求(从边缘修剪连接字符,而不是从整个边缘修剪)。
string WhateverFunction(string[] values, char join)
{
return String.Join(join.ToString(), values.Select(x => x.Trim(join)));
}
var stringArray = new[] {"windows", "\\users", "JohnSmith", "\\Documents"};
var tempString = WhateverFunction(stringArray, '\\');
windows\users\JohnSmith\Documents
答案 1 :(得分:1)
我认为你正在寻找Path.Combine()
,虽然这是针对路径的,而不是对问题的一般回答。
答案 2 :(得分:0)
我会使用显式字符串数组,在这种情况下" \ users"等对反斜杠无效 - 它需要两个反斜杠(以逃避斜杠)。
string[] stringArray = new string[]{"windows", "\\users", "JohnSmith", "\\Documents"};
string tempString = String.Join("\\", stringArray).Replace("\\\\","\\");
Console.WriteLine(tempString);
// windows\users\JohnSmith\Documents
Replace()用于删除斜杠的重复。