문제

나와 함께 시작합니다.

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));

나는 Lambdas가 "새로운"이므로 어느 정도 무섭다는 것을 알고 있지만, 양손으로 그들을 붙잡는 것은 정말 가치가 있습니다. 그들은 사랑 스럽습니다.

다른 팁

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