【问题标题】:Comparing strings from DB比较数据库中的字符串
【发布时间】:2019-01-14 22:14:21
【问题描述】:

我有一个类似下面的代码,我想检查一个特定的字符串。

string Response = "is name not valid";

(Response.IndexOf("name is not valid", StringComparison.CurrentCultureIgnoreCase) > = 0)

(Response.IndexOf("is name not valid", StringComparison.CurrentCultureIgnoreCase) > = 0)

现在,我正在检查很多字符串,例如字符串值来自数据库的字符串,并且我在此处按照数据库字符串对字符串进行硬编码。以上哪个条件会成真?

另外,还有其他更好的方法来进行这些操作吗?我有多个这样的比较。

【问题讨论】:

  • 什么是DB string,它有什么关系?我不确定为什么您不能自己测试上述 2 行代码,这可能需要您 1 分钟的时间(复制粘贴并在控制台应用程序中运行)。至于完全取决于您要比较的内容和方式的更好方法,IndexOf 很好,但如果您想要进行性能检查,您应该编写性能测试并分析结果。也许这个检查不是你正在执行的任何操作中最慢的部分。
  • @Igor:那不相关,那不是你的问题。我问了一个问题,假设 DB 是数据库,其中有一个表和这个消息列,我检索那些硬编码的消息
  • @Igor:测试是好的,我正在做。我也需要专家意见

标签: c# .net string c#-4.0 string-comparison


【解决方案1】:

IndexOf 如果您的匹配字符串(或本例中的“名称无效”)在输入字符串中不匹配,则返回 -1。它返回 0 或正数,指示匹配模式在输入字符串中“开始”的确切索引。

Response.IndexOf("is name not valid", StringComparison.CurrentCultureIgnoreCase) >= 0

即使您的输入字符串本身是"is name not valid",也应该返回true

我不确定您的问题 - 如果您的“响应”字符串来自数据库或氪气,为什么会有所不同。

【讨论】:

  • 阿皮特。不要担心响应,我从 db 作为字符串得到它(foreach 中的响应列表)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2012-07-18
  • 2011-11-28
  • 1970-01-01
相关资源
最近更新 更多