Boolean方法不应为区分大小写的c#返回
本文关键字:大小写 返回 方法 Boolean | 更新日期: 2023-09-27 17:57:46
我有一个布尔函数,它检查数据库中的名称,如果数据库中存在任何名称,则返回true。我的功能是
public bool rawMtrlExists(string strRawMtrl)
{
var rwMtrl = prodctsDC.productsnrwmtrls.Where(c => c.item_Ctgry == 'R' || c.item_Ctgry == 'B'||c.item_Ctgry=='G').Distinct().ToArray();
return rwMtrl.Count(d => d.item_Name == strRwMtrl) > 0;
}
我的问题是…如果我的strRawMtrl组织文档有相同的单词,但区分大小写,则方法返回false。我的意思是数据库字段中的名称是中央处理单元。我作为中央处理单元通过。在这种情况下,它返回的是false,但我需要true。请任何人帮我回来,不要用区分大小写的词。
您可以将重载的Equals
方法与StringComparison.OrdinalIgnoreCase
:一起使用
d.item_Name.Equals(strRwMtrl, StringComparison.OrdinalIgnoreCase)
另一种我不喜欢的破解方式,因为它在堆中又创建了两个字符串:
d.item_Name.ToLower() == strRwMtrl.ToLower()
我认为您可以使用它。使用ToArray()
将强制查询的下一部分在本地运行。也是Disticnt()
冗余。
public bool rwMtrlExists(string strRwMtrl)
{
return prdTcnDC
.productsnrwmtrls
.Where(c => c.item_Ctgry == 'R'
|| c.item_Ctgry == 'B'
|| c.item_Ctgry == 'G')
.Any(d => d.item_Name.ToLower() == strRwMtrl.ToLower());
}