2012-10-25 2 views
0

나는이 기능을하고 난은 http로 목록에있는 문자열을 포맷 할 필요 :List의 각 문자열을 어떻게 포맷 할 수 있습니까?

 private List<string> offline(string targetDirectory) 
     { 

      List<string> directories = new List<string>(); 

      try 
      { 
       string[] dirs = Directory.GetDirectories(targetDirectory, "*.*", SearchOption.TopDirectoryOnly); 
       for (int i = 0; i < dirs.Length; i++) 
       { 

        directories.Add(dirs[i]); 
       } 
      } 
      catch 
      { 

      }   
      return directories;  
     } 

기능은 하드 디스크에 디렉토리의 문자열 목록을 반환 : // 처음에. 각각의 문자열 목록은 http 될 것 http://c:\http://c:\windowshttp://c:\temp : c:\c:\windows

나는 결국 목록 대신 c:\\index[0]에서 c:\\windowsindex[1]이 될 것입니다 원하는처럼 가 포맷 할 // 처음에는

어떻게하면됩니까?

답변

3

그래서 각 문자열은 처음에 http : //로 표시됩니다.

List<string> newList = directories.Select(r=> "http://" + r).ToList(); 

또는

목록에 추가하는 동안
var list2 = directories.Select(r => string.Concat("http://", r)).ToList(); 
+0

매우 우아한 linq 사용. 그러나 OP가 간단한 "http : //"+ my_old_text 연결을 알아낼 수없는 경우 즉시 배우는 것이 너무 어려울 수 있습니다 .- ( – mjv

0

왜 추가하지

directories.Add("http://" + dirs[i]); 

또는

return directories.Select(rs=> "http://" + rs).ToList() 

또는

directories.ForEach(rs=>rs= "http://" + rs); 
return directories; 
+0

맞고 코드를 업데이트했습니다. – hungryMind

관련 문제