我在 C# 中使用实体框架,我的代码是
var result = ef.services.Where(entry => entry.tarikhservice >= textBoxX1.Text
&& entry.tarikhservice <= textBoxX2.Text).ToList();
这给了我这个错误:
运算符“>=”不能应用于“string”和“string”类型的操作数
如何比较两个字符串并修复错误?
当你比较数字时,比如 1 和 2,哪一个更大就一目了然了。然而,当您比较字符串时,哪一个被认为更大:“2”或“11”? “foo”还是“f”?回答:这取决于上下文。例如,如果按字典顺序对它们进行排序,则会得到“2”和“f”。如果你想要自然排序,你会在“11”之前得到“2”。
我认为出于这个原因,相对运算符(>、>=、
您的选择是编写自定义逻辑来比较字符串,或者使用框架提供的词典比较。代码是(如果我的数字正确的话):
var result = ef.services.Where(entry =>
string.Compare(entry.tarikhservice, textBoxX1.Text) >= 0
&& string.Compare(entry.tarikhservice, textBoxX2.Text) <= 0
.ToList()
要使代码不受文化影响(您应该!),请提供 StringComparison 作为 string.compare 的最后一个参数:
string.Compare(entry.tarikhservice, textBoxX1.Text, StringComparison.InvariantCulture)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)