【发布时间】:2017-06-14 06:53:32
【问题描述】:
我有一个程序
public void TestMethod2()
{
string[] keywords =
{
"SELECT", "FROM", "WHERE", "GROUP", "HAVING", "ORDER", "LEFT", "RIGHT", "JOIN", "INNER", "OUTER", "ASC",
"DESC", "AND", "OR","IN", "BETWEEN", "BY", "NOT", "ON", "AS", "CASE", "WHEN", "ELSE", "UPDATE", "SET"
};
var actualString = "SELECT * FROm A Join B On C in D case e join t left outer join inner join right join";
foreach (var text in actualString.Split(' '))
{
var isExists = keywords.Any(x => x.Equals(text, StringComparison.OrdinalIgnoreCase));
if (!isExists)
{
continue;
}
actualString = actualString.Replace(text, text.ToUpper());
}
var expectedString = "SELECT * FROM A JOIN B ON C IN D CASE e JOIN t LEFT OUTER JOIN INNER JOIN RIGHT JOIN";
}
我是 C# 的新手。我不清楚为什么 Replace() 方法没有按预期工作。它正在显示输出 SELECT * FROM A JOIN B ON C IN D CASE e join t LEFT OUTER JOIN INNER JOIN RIGHT JOIN
有人能告诉我为什么 Replace() 会这样吗? 提前致谢。
【问题讨论】: