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。请任何人帮我回来,不要用区分大小写的词。

Boolean方法不应为区分大小写的c#返回

您可以将重载的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());
}