2017-12-04 3 views
-2

CSVファイルに一連の文字列を追加するC#メソッドを作成しようとしています。これは、このようになりますCSVファイル内の既存の文字列の組み合わせを監視しているときにCSVファイルに文字列を追加する

public void StoreWords(string expectedValue, stringActualValue) 
{ 
    ///Store expectedValue, actualValue, and a seed value per row in the 
    /// .csv file. If the combination of the expectValue and actualValue 
    ///does not exist in the .csv file, then initialize a seed value for that 
    ///combination, otherwise increment the seed value for that combination 
    } 

私はcsvファイルを開き、単語の組み合わせを格納に固執しています。どんな助けもありがとう。

+3

質問(複数の質問があります...)が広すぎます。まず「C#でファイルを読み込む方法」を検索します。次に、「C#でファイルに追加する方法」を検索します。そしておそらく "どのようにC#でCSVファイルを解析するか"。次に、あなたが学んだことを試して、あなたが立ち往生したら特定の質問に戻ってください。 –

答えて

0

私は、そのコードが要件を満たしていなければならないと思う:

private string FilePath { get; set; } 

private string[] ReadFile() 
{ 
    return File.ReadAllLines(FilePath); 
} 

public Dictionary<Tuple<string, string>, string> MakeOrIncSeedValuesFromCsv(string[] lines) 
{ 
    var valuePairToSeedValue = new Dictionary<Tuple<string, string>, string>(); 

    var lines = ReadFile(); 
    for (int i = 0; i < lines.Length; i++) 
    { 
     var values = lines[i].Split(','); 

     if (values.Length > 2) 
     { 
      var newSeedValue = IncSeedValue(lines[2]); 
      var key = Tuple.Create<string, string>(values[0], values[1]); 

      if (!valuePairToSeedValue.ContainsKey(key)) 
      { 
       valuePairToSeedValue.Add(key, newSeedValue); 
      } 
      else 
      { 
       valuePairToSeedValue[key] = newSeedValue; 
      } 

     } 
     else 
     { 
      var key = Tuple.Create<string, string>(values[0], values[1]); 
      var seed = GetSeedValue(key); 

      if (!valuePairToSeedValue.ContainsKey(key)) 
      { 
       valuePairToSeedValue.Add(key, seed); 
      } 
      else 
      { 
       valuePairToSeedValue[key] = seed; 
      } 
     } 
    } 

    return valuePairToSeedValue; 
} 

private string GetSeedValue(Tuple<string, string> values) 
{ 
    return // put your code here 
} 

private string IncSeedValue(string actualSeedValue) 
{ 
    return // put your code here 
} 

}

+0

私はそれを使用しようとすると、コードにわずかな問題があります。 MakeOrIncSeedValuesFromCsvメソッドのパラメータには、文字列[]の行があります。しかし、メソッド内にはvar行があります。これは自分自身とコンパイラにとって混乱しています。宣言されたforループでは、ループがインクリメントすると想定される制限は、line.Lengthに基づいています。どのラインを参考にしていますか? –

+0

また、私はIncSeedValue(文字列actualSeedValue)を実装することができました。しかし、プライベート文字列GetSeedValue(Tuple values)に問題があります。 –

+0

この引数をメソッドから削除します。よくなる。 –

関連する問題