1

次のような多くの値を時々比較する必要があります。

if (myCurrentUser.Role in ("Admin","User"))

しかし、上記は不可能なようで、代わりに次のことを行う必要があります。

if (myCurrentUser.Role == "Admin" || myCurrentUser.Role == "User")

これはかなり長くなり始めます。

それで、「イン」アプローチを持つ方法はありますか。明らかに、SQL でこれを行うことができます。

また、LINQ Lambda 式でもこれを使用したいと思います。

var myRecords = db.mytable.where(r=>r.name in ("Roy","Jack"))

現在、私はこれを次のように書いています。

var myRecords = db.mytable.where(r=>((r.name == "Roy")||(r.name == "Jack")));

前もって感謝します。

4

3 に答える 3

3

次のようなものを使用してみてください。

var x = (new string[] {"A", "B"}).Contains("C");
于 2013-08-07T09:25:36.983 に答える
2

この拡張メソッドを追加すると:

public static class Extensions
{
    public static bool IsIn<T>(this T source, params T[] values)
    {
        return values.Contains(source);
    }
}

次のようなコードを記述できます。

if (myCurrentUser.Role.IsIn("Admin","User"))
于 2013-08-07T14:23:29.863 に答える