2017-05-01 151 views
0

所以我有一個數組(字符串[]),我有一個數組,其中包含我希望保留的行數,是否有一種特殊方式可以刪除除這些之外的所有元素,或者可能將這些複製到一個空數組中?刪除數組中除了某些元素外的所有元素

這是行號

  for (int i = 0; i < dumpFile.Length; i++) 
      { 
       if (dumpFile[i].StartsWith(@"  ""videoId"":")) 
       { 
        arrayIndex.Add(i); 
        string stringI = i.ToString() + "\r\n"; 
        System.IO.File.AppendAllText("lines.txt", stringI);      
       } 
      } 
+0

你的意思是你有一個數組,包含例如1,3,4,6這意味着你想要索引2和5的字符串被刪除? – Stuart

+0

你可以使用'Select'和'Where'方法來實現你想要的,或者去非LINQ並自己填充一個新的Array。除非你展示一些代碼並更好地描述你如何確定你想要保留哪些行,否則還有什麼我不能說的。 – Abion47

+0

@Stuart是的,這是我有的陣列格式,但數字的行是我想保留的那些 – littlefish

回答

3

使用LINQ數組:

只保留一定的數組中的元素,你可以使用下面的代碼。隨意指定您的條件來代替line.StartsWith()。您也可以像使用單個語句而不是循環一樣將這些文件保存到文件中。

string[] selected = dumpFile.Where(line => line.StartsWith(@"  ""videoId"":")).ToArray(); 

// Now saving these lines to a file in a single line instead of using a loop 
System.IO.File.AppendAllLines("lines.txt", selected); 
+0

好吧,這完美的作品,非常感謝! – littlefish