2017-11-22 20 views
-1

現在、CSV文書をスキャンし、\ rを〜に置き換えていくつかの行末の問題を修正してから、\ nだけ分割してから〜をすべて\ r。テキスト行の項目を期待通りに機能しない

私のコード私は正しいと思いますが、私は正常にすべてを追加することができますが、\ rを取り出すことはできません。また、行を分割した後に逆にしようとすると〜文書に残ります\ rはまだ削除されていないと仮定して、まだそこにあります。

私の交換が期待通りに機能しないのはなぜですか?

var reader = new StreamReader(path, Encoding.Default); 
List<string> lines = new List<string>(); 

string Lines = reader.ReadToEnd().Replace('\r', '~'); 

var items = Lines.Split('\n'); 

foreach (var item in items) 
{ 
    item.Replace('~', '\r'); 
    lines.Add(item); 
} 
+3

最後の 'item.Replace'は、何かに置き換えた結果を割り当てません... – Chris

+0

" \ r \ n "を"〜\ r \ n "に置き換えてから、 。置換は文字だけでなく部分文字列に対しても機能します。 –

+0

@chrisこれは間違いなく問題でした。 – funktail1989

答えて

0

item.Replaceが実際に元の文字列を変更しない、それが行われ、交換して新しい文字列を返します。つまり、を意味し、常にに何かに戻り値を割り当てる必要があります。したがって、この場合には、あなたは

item = item.Replace('~', '\r'); 

(または似たような)に

item.Replace('~', '\r'); 

を変更する必要があります。

関連する問題