1

我有一个布尔函数,它检查数据库中的名称,如果数据库中存在任何名称,则返回 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 orgument 具有相同的单词但区分大小写,则该方法返回 false。我的意思是数据库字段中的名称是Central Processing Unit我作为中央处理器传递。在这种情况下,它返回 false,但我需要 true。请任何人帮助我返回不区分大小写的单词。

4

2 回答 2

6

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

d.item_Name.Equals(strRwMtrl, StringComparison.OrdinalIgnoreCase)

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

d.item_Name.ToLower() == strRwMtrl.ToLower()
于 2013-02-06T04:29:59.860 回答
0

我想你可以用这个。使用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());
}
于 2013-02-06T04:47:31.790 回答