字符串与StartsWith或Substring的比较不起作用

本文关键字:比较 不起作用 Substring StartsWith 字符串 | 更新日期: 2023-09-27 18:27:38

我需要找到我从电子邮件中下载的附件,但我无法将附件文件名与字符串进行比较,我做错了什么?脚本应该返回"in in",但它返回"out out"

FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
Console.WriteLine(fileAttachment.Name);
if (fileAttachment.FileName.StartsWith("OpenOrders")) {
    Console.WriteLine("in"); 
} 
else { 
    Console.WriteLine("out"); 
}
if (fileAttachment.FileName.Substring(0, 10) == "OpenOrders") { 
    Console.WriteLine("in"); 
} else { 
    Console.WriteLine("out"); 
}

输出:

OpenOrders some text with spaces.xlsx
out
out

字符串与StartsWith或Substring的比较不起作用

您正在输出fileAttachment.Name,但在StartsWith中使用fileAttachment.FileName。使用正确的版本,它应该可以工作。

FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
Console.WriteLine(fileAttachment.Name);
if (fileAttachment.Name.StartsWith("OpenOrders")) {
    Console.WriteLine("in"); 
} 
else { 
    Console.WriteLine("out"); 
}
if (fileAttachment.Name.Substring(0, 10) == "OpenOrders") { 
    Console.WriteLine("in"); 
} else { 
    Console.WriteLine("out"); 
}

您正在输出Name属性:

Console.WriteLine(fileAttachment.Name);

但是您的StartsWithSubstring调用是针对FileName属性的。我怀疑您会发现Name正在返回与FileName不同的内容。