我有一个字符串string s ="C:\\Data"
,我有一个数组,其中包含一些字符串,其中包含“C:\ Data”,即string[] arr = new {"C:\\Data\abc.xml","C:\\Data\Test\hello.cs"};
。
我必须从每个条目中删除字符串“C:\ Data”,并且必须将其与另一个字符串string fixed = "D:\\Data"
组合。
最好的方法是什么,请帮忙,因为我是C#的新程序员。
答案 0 :(得分:5)
如果您确定数组中的所有元素都以“C:\ Data”开头,那么它非常简单:
for(int i = 0; i<arr.Length; i++)
{
arr[i] = arr[i].Replace("C:\\Data" , "D:\\Data");
}
答案 1 :(得分:2)
String.Replace
可能不您需要的内容,因为它会替换所有字符串中C:\Data
的出现次数,而您只需要在开头。
我建议如下:
string s ="C:\\Data";
string s1 = "D:\\Data";
for (int i = 0; i < arr.Count; i++)
{
if (arr[i].StartsWith(s))
arr[i] = s1 + arr[i].Remove(s.Length);
}
答案 2 :(得分:1)
组合LINQ和string.Replace():
arr.Select(s => s.Replace("C:\\Data", "D:\\Data").ToArray();
答案 3 :(得分:0)
String.replace很容易处理它。
答案 4 :(得分:0)
for (var i=0; i < arr.Length; i++)
arr[i] = arr[i].Replace("C:\\Data", "D:\\Data");
答案 5 :(得分:-1)
您可以使用LINQ并执行
String[] newStrings = arr.Select(oldString => fixed + oldString.Replace(s, ""))
.ToArray()
请注意,fixed
是c#中的关键字,因此对于变量名称来说是错误的选择。