質問

始めましょう:WHERE ... IN ...タイプの句を使用して複数の要素を選択するにはどうすればよいですか

select * from orders where orderid in (1, 4, 5)

LinqToSqlで?私は、ラムダ式が怖いので、ラムダ式を持たないことを望みます。事前に感謝します!

役に立ちましたか?

解決

LINQには「含む」があります「IN」のようなものです逆に表現されます-要素は「イン」ではありません;セット、セット「含む」要素。

int[] validIds = { 1, 4, 5 };
var query = from order in db.Orders
            where validIds.Contains(order.Id)
            select order

これは、ラムダを使用してより単純に表現されています(IMO):

int[] validIds = { 1, 4, 5 };
var query = db.Orders.Where(order => validIds.Contains(order.Id));

ラムダは「新しい」ことを認識しています。したがって、ある程度は怖いですが、両手でそれらをつかむことは本当に価値があります。彼らは素敵です。

他のヒント

int[] arry = new int[] {1,4,5};

var q = from r in orders
        where Array.IndexOf(array, orderid) != -1
        select r;

または

List<int> lst = new List<int>(new int[] {1,4,5});
var q = from r in orders
        where lst.Contains(orderid);
        select r;
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top