2014-06-16 54 views
0

我有一個List<string>包含大約10個字符串。 值如下:如何拆分服務器地址並將其存儲在列表中

\\Server\Site\MySite\File1.xml 
\\Server\Site\MySite\File2.xml 
\\Server\Site\MySite\File2.xml 
....................... 
\\Server\Site\MySite\File10.xml 

我需要提取\MySIte\File1.xml\MySite\File10.xml並將其存儲在另一個列表。

我試圖使用Split關鍵字,並使用另一個列表來填充拆分的字符串。但它似乎並沒有給出正確的答案。

下面是代碼:

for(int index=0;index<list.Count;list++) 
{ 
    string[] myArray=list[index].Split('\\'); 

    for(int innerIndex=0;innerIndex<myArray.Length;innerIndex++) 
    { 
     anotherList[innerIndex]=myArray[2]+"\\"+myArray[3]; 
    } 
} 

專家,請幫助。

回答

0

你不需要太辛苦的工作,如果你知道所有的字符串

的輸入
str.Substring(str.IndexOf("\\MySite")) 
+0

讓我來試試您的解決方案 – Anurag

0

一個字:LINQ!

var results = (from x in source 
       let parts = x.Split('\\') 
       select String.Join("\\", parts.Skip(1)).ToArray(); 
+0

讓我嘗試你的解決方案 – Anurag

+0

列表 = results.ToList();如果我嘗試將LINQ查詢的結果綁定到列表,則會出現錯誤。請幫助 – Anurag

+0

您的LINQ查詢不起作用。它再次給我原始列表。還有其他建議嗎? – Anurag

0

您可以使用以下代碼。

 List<string> source = new List<string>(); 
     source.Add(@"\\Server\Site\MySite\File1.xml"); 
     source.Add(@"\\Server\Site\MySite\File2.xml"); 
     source.Add(@"\\Server\Site\MySite\File2.xml"); 
     source.Add(@"\\Server\Site\MySite\File10.xml"); 

     foreach(string s in source) 
     { 
      string[] parts = s.Split(new string[]{ Path.DirectorySeparatorChar.ToString() },StringSplitOptions.RemoveEmptyEntries); 
      Console.WriteLine(parts[parts.Length - 1] + Path.DirectorySeparatorChar + 
           parts[parts.Length - 2]); 
     } 
0

我只想\MySite之前刪除任何東西,得到休息:使用

測試數據:

List<string> source = new List<string> 
{ 
    @"\\Server\Site\MySite\File1.xml", 
    @"\\Server\Site\MySite\File2.xml", 
    @"\\Server\Site\MySite\File2.xml", 
    @"\\Server\Site\MySite\File10.xml", 
}; 

查詢:

var result = 
    source 
    // Start removing at 0 and remove everything before '\MySite' 
    .Select(x => x.Remove(0, x.IndexOf("\\MySite"))) 
    .ToList(); 
相關問題