对于区分大小写的c#,如何不返回布尔方法

Lea*_*ner 1 c# boolean case-sensitive

我有一个布尔函数,它检查数据库中的名称,如果数据库中存在任何返回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;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是..如果我的strRawMtrl orgument具有相同的单词但具有casesensitive,则该方法返回false.我的意思是数据库字段中的名称是中央处理单元.我作为中央处理单位通过.在这种情况下它返回false但我需要true.请有人帮我回复,不要用于区分大小写的单词.

cuo*_*gle 6

您可以使用重载Equals方法StringComparison.OrdinalIgnoreCase:

d.item_Name.Equals(strRwMtrl, StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)

另一种我不喜欢的hacky方式,因为它在堆中创建了两个以上的字符串:

d.item_Name.ToLower() == strRwMtrl.ToLower()
Run Code Online (Sandbox Code Playgroud)

  • 虽然第一种方法肯定比第二种方法好,但最好使用`StringComparison.OrdinalIgnoreCase`.请参阅http://msdn.microsoft.com/en-us/library/ms973919.aspx (2认同)