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組織が同じ単語を持っているが大文字と小文字を区別している場合、メソッドはfalseを返します。データベースフィールドの名前は中央処理装置です。中央処理装置として通過するIam 。この場合、falseが返されますが、trueが必要です。大文字と小文字を区別する単語ではなく、誰かが私が戻るのを手伝ってください。

4

2 に答える 2

6

オーバーロードEqualsされたメソッドは次のように使用できますStringComparison.OrdinalIgnoreCase

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

ヒープ内にさらに2つの文字列を作成するため、私が好まないもう1つのハッキーな方法:

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 に答える