C#如何比较两个字符串?

时间:2016-07-04 07:21:55

标签: c#

我想比较两个字符串。第一个来自dateTimePicker,第二个来自文件。

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 :(得分:3)

我怀疑这是问题所在:

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

Windows上的换行符为"\r\n" - 因此,拆分中的每一行都将以\r结尾。解决这个问题的最简单方法是用以下代码替换这两行:

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

答案 1 :(得分:0)

如果您确定日期时间格式并且字符串正确,则可以按EqualsCompare比较2个字符串。 linux中的行尾字符为\n(换行符),窗口为\r(回车),两者为\r\n,因此您应该按这些字符拆分行或读取文件逐行。