c#
  • runtime-error
  • 2016-08-29 3 views 0 likes 
    0

    하지 않습니다 : I 출력하고자 할 때 거기에, 내가 이렇게 뭐죠, 그래서 "Plate = -02-" :`내 txt 파일에 인덱스가 배열 경계를 벗어났습니다. 1 예에서 작동하지만이 예제가

    var dic = File.ReadAllLines("settings.txt") 
           .Select(l => l.Split(new[] { '=' })) 
           .ToDictionary(s => s[0].Trim().ToString(), s => s[1].Trim().ToString()); 
           Variables.platefromtxt = dic["Plate"]; 
    

    내가 가진를 Variables.platefromtxt = dic["Plate"]; 어느 것이 잘 작동하고 있습니까!

    내가 할 시도 또 하나 : 나는 "^7Whale Waileer"을 얻고 싶은 그래서 어떻게해야 "^3-02 ^7Adorable [COP]^8 | ^7Whale Waileer"

    : Variables.name = dicChatlog["^3-02 ^7Adorable [COP]^8"]

    때를

    var dicChatlog = File.ReadAllLines("chatlog.txt") 
          .Select(l => l.Split(new[] { '|' })) 
          .ToDictionary(s => s[0].Trim().ToString(), s => s[1].Trim().ToString()); 
    

    이 내 chatlog.txt 내부의 무엇인가 응용 프로그램을 실행하려고하면 "인덱스가 배열 범위를 벗어났습니다."라는 메시지가 나타납니다. 첫 번째 예제는 잘 작동하지만 두 번째 예제는 오류가 있습니다. 어떤 사람이 내가 뭘 잘못하고 있다고 말할 수 있습니까? 이 트릭을 할해야

    +0

    당신은 어떤'chatlog.txt'의 모든 라인이 있습니까있는'|'거기에? 이 오류는'Split'이'|'를 찾지 못했고's [1]'이'Split' 결과의 범위 밖에있을 경우에 발생할 수 있습니다. –

    +0

    안녕하세요, 답장을 보내 주셔서 감사합니다. 예, chatlog.txt에 "|" Adorable & Whale Waileer 사이에있는 유일한 선입니다. – Brini

    +0

    당신이 지정한 입력에 따라 코드가 잘 작동하기 때문에 다른 일이 일어나야합니다. https://dotnetfiddle.net/YmDcdO –

    답변

    1

    사전에

    감사합니다 :

    var dicChatlog = File.ReadAllLines("chatlog.txt") 
          .Where(l => l.Contains("|")) 
          .Select(l => l.Split(new[] { '|' })) 
          .ToDictionary(s => s[0].Trim().ToString(), s => s[1].Trim().ToString()); 
    
    +0

    정말 대단합니다. 존경심. – Brini

    관련 문제