2016-11-03 4 views
-4

WebRequestMethods.Ftp.ListDirectoryDetails 메서드를 사용하여 FTP 서버에서 파일을 가져옵니다.여러 배열에서 문자열을 분할하는 가장 좋은 방법은 무엇입니까

문자열 형식 : 11-02-16 11:33AM abc.xml\r\n11-02-16 11:35AM xyz.xml
배열에 11-02-16 11:33AM abc.xml을 저장할 수 있습니다.

어떻게 날짜와 파일 이름을 배열에 저장할 수 있습니까?

전체 배열을 열거하고 각 값을 다시 나누고 싶지 않습니다.

+1

필요한 모든 특성을 가진 새로운 클래스를 만들고 그것의 배열을 저장합니다. –

+1

은 항상 얻으려는 형식입니다. 11-02-16 11:35 AM xyz.xml – NMathur

답변

0

Dictionary<DateTime, string>을 사용하는 것이 좋습니다. 당신의 문자열에 관한

List<string> splits = "yourSplitsStringArray".ToList(); 

//Create your Result Dictionary 
Dictionary<DateTime, string> result = new Dictionary<DateTime, string>(); 

//Process your data: 
splits.ForEach(x => result.Add(DateTime.Parse(x.Substring(0, 16)), x.Substring(17, x.Length - 17))); 

:

|0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22| 
|1|1|-|0|2|-|1|6| |1| 1| :| 3| 3| A| M| a| b| c| .| x| m| l| 

그래서 당신의 날짜 시간 16 =>x.Substring(0, 16)의 전체 아이폰에와 [0]에서 시작한다.

파일 이름은 [17]에서 시작하여 x.Lenght - 17 chars입니다.

나는 모든 것을 다시 열거하고 싶지는 않지만, 필요한 것을 성취하는 것이 가장 간단하고 실용적인 방법이라고 생각합니다.

첫 번째 분할 작업에 내 대답의 일부를 포함시킬 수도 있습니다.

하지만 : 그것은 사전 DateTime가 고유해야되는 이래로

. 그런 경우인지 확실하지 않으면 List<Tuple<DateTime, string>>을 대신 사용하십시오. 사전과 비슷합니다.

이것은 당신의 Linq에 변경됩니다 :

//Process your data: 
splits.ForEach(x => result.Add(new Tuple<DateTime, string>(DateTime.Parse(x.Substring(0, 16)), x.Substring(17, x.Length - 17)))); 
관련 문제