2009-10-02 5 views
4

루프를 사용하지 않고 문자열을 다차원 배열이나 들쭉날쭉 한 배열로 분할하는 방법은 무엇입니까? 코드 스 니펫 (snippet)을 보았습니다. 코드 스 니펫 (snippet)은 파일 스트림을 사용하여 코드 스 니펫 (snippet)을 보았고 문자열에 맞게 작동시키는 방법을 알아낼 수 없었습니다. 문자열은 1:2;3:1;4:1과 비슷하며 ID:Qty으로 나눌 수 있습니다. 내가 본 코드는 다음과 같습니다.C# 문자열을 다차원 배열 또는 들쭉날쭉 한 배열로 분할하는 방법이 없습니까?

string[][] lines = File.ReadAllLines(path) 
    .Select(line => line.Split(',').ToArray()).ToArray(); 

미리 감사드립니다.

답변

8
String s = "1:2;1:3;1:4"; 
String[][] f = s.Split(';').Select(t => t.Split(':')).ToArray(); 
+0

감사합니다. – Praesagus

3
MyString.Split(';').Select(s => s.Split(':')) 

그러면 IEnumerable<IEnumerable<string>>이 표시됩니다. 이 실제로으로 가고 싶다면 .ToArray()으로 전화 할 수는 있지만 거의 가치가 없습니다.

+0

답변이 좋습니다. 완성 단계까지 한 걸음 내버려 두지 않습니다. >에서 String [] []로 어떻게 변환합니까? – Praesagus

+2

문자열 [] []이 정말로 필요합니까? IEnumerable은 필요한 것의 90 %를 수행하며, 필요하기 전에 실제 배열로 변환하는 것은 성능에 매우 좋지 않습니다. 그렇게하면 필요한 곳에서'.ToArray()'를 호출하면된다. 또한 IEnumerable 또는 IEnumerable 배열을 사용하여 얻을 수 있는지 고려해야합니다. –

관련 문제