2016-07-04 11 views
0

私は2つの文字列を比較したいと思います。最初はdateTimePickerから、2番目はfileからです。C#2つの文字列を比較するには?

string firtsdate = dateTimePicker1.Value.ToString("yyyy-MM-dd"); 
string seconddate = dateTimePicker2.Value.ToString("yyyy-MM-dd"); 

string FilePath = path; 

string fileContent = File.ReadAllText(FilePath); 
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); 

int count = 0; 

for (int n = 0; n < integerStrings.Length;)    
{ 
    count = integerStrings[n].Length;    
    //Console.Write(count + "\n"); 
    count--;           
    if (count > 2)         
    { 
     string datastart; 
     string dataend; 

     if (integerStrings[n] == firtsdate) 
     { 
      datastart = integerStrings[n]; 
      Console.Write(datastart); 
      dataend = (DateTime.Parse(datastart).AddDays(1)).ToShortDateString(); 
      Console.Write(dataend + "\n"); 
     } 
     else 
     { 
      n = n + 7; 
     } 
    } 
} 

ファイルは次のようになります。

  • 2016年7月1日
  • 2016年7月2日
  • 2016年7月6日
  • ...

問題は、2016-07-02 == 2016-07-02(ファイルから)のように、同じ値の2つを比較したくないということです。

+0

2つの文字列をdatetime変数に変換し、このように比較してください... https://msdn.microsoft.com/en-us/library/system.datetime.compare(v=vs.110).aspx –

+0

比較しようとしている値は?たぶん彼らはあなたが思うものではないでしょう。 –

+0

[C#の文字列とオブジェクトの比較]の可能な複製(http://stackoverflow.com/questions/21278322/compare-string-and-object-in-c-sharp) –

答えて

3

私はこれが問題である疑いがある:

string fileContent = File.ReadAllText(FilePath); 
string[] integerStrings = fileContent.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); 

Windows上の改行は"\r\n"ある - ので、あなたの分割の各行は、\rに終了します。あなたは、日付時刻フォーマットについて確信している、との文字列が正しい場合、あなたはEquals、またはCompareで2つの文字列を比較することができます

string[] integerStrings = File.ReadAllLines(FilePath); 
0

:この問題を解決する最も簡単な方法は、ただでこれら2つの行を交換することです。 linuxの行末文字は\n(改行)で、ウィンドウは\r(復帰)と\r\nです。これらの文字で行を分割するか、1行ずつファイルを読み込む必要があります。

関連する問題