在C#中比较字符串非常简单.事实上,有几种方法可以做到这一点.我在下面的块中列出了一些.我很好奇的是它们之间的差异以及何时应该使用其他的?是否应该不惜一切代价避免?还有更多我没有列出?
string testString = "Test";
string anotherString = "Another";
if (testString.CompareTo(anotherString) == 0) {}
if (testString.Equals(anotherString)) {}
if (testString == anotherString) {}
Run Code Online (Sandbox Code Playgroud)
(注意:我在这个例子中寻找平等,不小于或大于,但也可以随意发表评论)
哪个代码更好:
int index = fileName.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
要么
int index = fileName.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud) 如何在C#中比较2个字符串,忽略大小写,空格和任何换行符.我还需要检查两个字符串是否为空,然后将它们标记为相同.
谢谢!
我想使用字符串类的Equals()方法比较C#中两个字符串是否相等.但即使两个字符串相同,我的条件检查也会失败.
我已经看到两个字符串相同,并在http://text-compare.com/网站上验证了这一点.我不知道这里有什么问题......
我的代码是:
protected string getInnerParaOnly(DocumentFormat.OpenXml.Wordprocessing.Paragraph currPara, string paraText)
{
string currInnerText = "";
bool isChildRun = false;
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(currPara.OuterXml);
XmlNode newNode = xDoc.DocumentElement;
string temp = currPara.OuterXml.ToString().Trim();
XmlNodeList pNode = xDoc.GetElementsByTagName("w:p");
for (int i = 0; i < pNode.Count; i++)
{
if (i == 0)
{
XmlNodeList childList = pNode[i].ChildNodes;
foreach (XmlNode xNode in childList)
{
if (xNode.Name == "w:r")
{
XmlNodeList childList1 = xNode.ChildNodes;
foreach (XmlNode xNode1 in childList1)
{
if (xNode1.Name …Run Code Online (Sandbox Code Playgroud) 我正在尝试为生成大量文本的代码编写单元测试.我遇到了一个问题,其中"预期"和"实际"字符串似乎相等,但Assert.AreEqual抛出,并且都是相等运算符并Equals()返回false.GetHashCode()两个值的结果也不同.
但是,将两个字符串放入文本文件并与DiffMerge进行比较告诉我它们是相同的.
此外,Encoding.ASCII.GetBytes()在两个值上使用然后使用SequenceEquals 比较结果字节数组返回true.
这些值每个都是34KB,所以我暂时把它们放在这里.有任何想法吗?我完全难过了.