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

    に私はこの例ではありません:Variables.platefromtxt = dic["Plate"]; :そこには、私はこれを行ういただきました!私は出力したいとき、そう"Plate = -02-":私は私のtxtファイルに `インデックスが配列の境界外にありました。第一の例の作品が、第2

    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"]; 
    

    をどちらがうまくいきます!

    私は別のいずれかを実行しようとしている:

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

    は、これは私のchatlog.txtの内側に何である:"^3-02 ^7Adorable [COP]^8 | ^7Whale Waileer"

    だから私は、私が何をすべき"^7Whale Waileer"を取得したいとき:Variables.name = dicChatlog["^3-02 ^7Adorable [COP]^8"]

    とき私はアプリケーションを実行しようとしている、私は "インデックスは、配列の境界外だった。最初の例は正常に動作しますが、2番目の例ではエラーが発生します。私が間違っていることを誰に教えてもらえますか?これはトリックを行う必要があります

    +0

    あなたが特定の 'chatlog.txt'のすべての行です持って' | 'それで?このエラーは 'Split'が' | 'を見つけず、' s [1] 'が' Split'結果の範囲外にある場合に起こります。 –

    +0

    こんにちは、お返事ありがとうございます。はい、chatlog.txtには "|"愛らしい&ホエールワイラーの間に、そこには唯一の線です。 – 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

    関連する問題