2017-12-25 27 views
-1

나는 여기서 찾을 수있는 것과 MSDN에서 찾을 수있는 것 중에서 많은 옵션을 시도했지만 아무 것도 작동하지 않는 것 같습니다. 파일 :C# 문자열 []에서 Char [] []

ABCD 
EFGH 
QWER  

가 될 필요 : 그래서 basicly 내가 예를 들어 [] [] 를 숯불 할 파일을 읽은 다음의 내용을 설정해야

{ { 'A','B','C','D' },{ 'E','F','G','H' },{ 'Q','W','E','R' } } 

을 그리고 이것은 내가 무엇을 않았다 :

private static char[][] ParseFile(string file) 
    { 
     string[] fileOne = File.ReadAllLines(file); 
     char[][] fileOut = {}; 
     char[] fileOutLine; 
     for (int i = 0; i < fileTwo.Length ; i++) 
     { 
      string linew = fileTwo[i]; 
      for (int j = 0; j < linew.Length; j++) 
      { 
       //Stuck here 
      } 
     } 

     return fileOut; 
private static char TurntoChar(string s) 
    { 
     switch (s) 
     { 
       case "S": 
        return 'S'; 
        break; 
       case "O": 
        return 'O'; 
        break; 
       case "F": 
        return 'F'; 
        break; 
       default: 
        return 'B'; 
        break; 
     } 
    } 
} 


internal class Point 
{ 
    public Point(int x, int y) 
    { 
     X = x; 
     Y = y; 
    } 

    public int Y { get; set; } 
    public int X { get; set; } 
} 

}   

미리 감사드립니다.

+3

힌트를 이동합니다'string.ToCharArray' 당신의 친구입니다. (또한, LINQ :'return fileOne.Select (line => line.ToCharArray()) .ToArray())') –

+0

더 쉬웠을 지 모르지만 문제는 내가 Linq를 피해야한다는 것입니다. 기본적으로 순수한 C 만 필요합니다 # – TesterTemp

+2

어떤면에서 LINQ가 "순수한 C#"이 아닌가? 당신은 당신의 질문에 더 많은 세부 사항을 넣어야합니다. (당신의 질문에 왜'Point' 질문이 있는지 분명하지 않습니다.) –

답변

0

정말 람다에게 총을 줘야합니다. 그것은 당신의 삶을 편하게 해줄 것입니다. 여기에 다음 주장하는 경우
글쎄, 당신은

string[] lines = File.ReadAllLines(@"yourpath"); 
char[][] charArray = new char[lines.Length][]; 
for (int i = 0; i < lines.Length; i++) 
{ 
    char[] lineChars = new char[lines[i].Length]; 
    charArray[i] = lineChars; 
    for (int j = 0; j < lines[i].Length; j++) 
    { 
     charArray[i][j] = lines[i][j]; 
    } 
} 
2

Linq을 사용할 수 있습니다.

var fileOut = fileOne.Select(x => x.ToCharArray()).ToArray(); 

Linq을 사용하지 않으려면,

string[] fileOne = File.ReadAllLines(file); 
char[][] fileOut = new char[fileOne.Length][]; 
for (int i = 0; i < fileOne.Length; i++) 
{ 
    fileOut[i] = fileOne[i].ToCharArray(); 
}