bankOptionEntity.AutoCompleteForForm =
(string.Compare(dr["Value"].ToString().Trim(), "Y", true) == 0);
OR
bankOptionEntity.AutoCompleteForForm =
dr["Value"].ToString().Trim().ToUpper().Equals("Y");
答案 0 :(得分:0)
试
var firstChar = dr["Value"].ToString()[0];
var ok = firstChar == 'y' || firstChar = 'Y';
并进行一些性能测试 - 但我认为这根本不是问题。
PS:假设字符串不为空 - 如果这可能是一个问题,请将其作为
var value = dr["Value"].ToStrin();
var firstChar = String.IsNullOrEmpty(value) ? 'n' : value[0];
var ok = firstChar == 'y' || firstChar = 'Y';
答案 1 :(得分:0)
检查此post。在我看来,既然你不必考虑文化敏感的比较,Equals应该比Compare方法更有效。但是,请注意Trim和ToUpper方法都有性能成本。
的问候,
答案 2 :(得分:0)
如果您在长循环中执行此代码,则问题不是字符串比较,而是您访问数据读取器中列的方式。首先获取列号并在循环中使用它。
int valueOrdinal = dr.GetOrdinal("Value");
while (dr.Read()) {
bool ok = dr.GetString(valueOrdinal).Trim().ToUpper() == "Y";
...
}
如果您有一个短循环或根本没有循环,那么无论如何都无关紧要。