LINQ学習
2386 ワード
Where操作
適用シーン:フィルタリング、クエリーなどの機能を実現します.
説明:SQLコマンドのWhereと同様に、範囲限定、すなわちフィルタリングの役割を果たしますが、判断条件はその後ろに続く句です.
Where操作は,単純形式,関係条件形式,First()形式の3つの形式を含む.例を次に示します.
1.簡単な形式:
たとえば、whereを使用してロンドンの顧客をフィルタします.
さらに、1994年以降に雇用された従業員をフィルタします.
2.関係条件形式:
在庫量が発注ポイントレベル以下であるが、品切れしていない製品を選別する.
UnitPriceが10より大きい製品または生産停止している製品を選別します.
次の例では、UnitPriceが10より大きく、生産停止している製品をフィルタするためにwhereを2回呼び出します.
3.First()形式:
SQL文にTOP(1)を付けることを意味するコレクション内の要素を返します.
簡単な使い方:表の最初の出荷元を選択します.
要素:CustomerIDが「BONAP」の個々の顧客を選択
条件:運賃が10.00より大きいオーダーを選択します.
適用シーン:フィルタリング、クエリーなどの機能を実現します.
説明:SQLコマンドのWhereと同様に、範囲限定、すなわちフィルタリングの役割を果たしますが、判断条件はその後ろに続く句です.
Where操作は,単純形式,関係条件形式,First()形式の3つの形式を含む.例を次に示します.
1.簡単な形式:
たとえば、whereを使用してロンドンの顧客をフィルタします.
var q =
from c in db.Customers
where c.City == "London"
select c;
さらに、1994年以降に雇用された従業員をフィルタします.
var q =
from e in db.Employees
where e.HireDate >= new DateTime(1994, 1, 1)
select e;
2.関係条件形式:
在庫量が発注ポイントレベル以下であるが、品切れしていない製品を選別する.
var q =
from p in db.Products
where p.UnitsInStock <= p.ReorderLevel && !p.Discontinued
select p;
UnitPriceが10より大きい製品または生産停止している製品を選別します.
var q =
from p in db.Products
where p.UnitPrice > 10m || p.Discontinued
select p;
次の例では、UnitPriceが10より大きく、生産停止している製品をフィルタするためにwhereを2回呼び出します.
var q =
db.Products.Where(p=>p.UnitPrice > 10m).Where(p=>p.Discontinued);
3.First()形式:
SQL文にTOP(1)を付けることを意味するコレクション内の要素を返します.
簡単な使い方:表の最初の出荷元を選択します.
Shipper shipper = db.Shippers.First();
要素:CustomerIDが「BONAP」の個々の顧客を選択
Customer cust = db.Customers.First(c => c.CustomerID == "BONAP");
条件:運賃が10.00より大きいオーダーを選択します.
Order ord = db.Orders.First(o => o.Freight > 10.00M);