Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

This browser is no longer supported.

Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

Download Microsoft EdgeMore info about Internet Explorer and Microsoft Edge
Table of contentsExit focus mode

where clause (C# Reference)

  • 2021-09-15
Feedback

In this article

Thewhere clause is used in a query expression to specify which elements from the data source will be returned in the query expression. It applies a Boolean condition (predicate) to each source element (referenced by the range variable) and returns those for which the specified condition is true. A single query expression may contain multiplewhere clauses and a single clause may contain multiple predicate subexpressions.

Example 1

In the following example, thewhere clause filters out all numbers except those that are less than five. If you remove thewhere clause, all numbers from the data source would be returned. The expressionnum < 5 is the predicate that is applied to each element.

class WhereSample{    static void Main()    {        // Simple data source. Arrays support IEnumerable<T>.        int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];        // Simple query with one predicate in where clause.        var queryLowNums =            from num in numbers            where num < 5            select num;        // Execute the query.        foreach (var s in queryLowNums)        {            Console.Write(s.ToString() + " ");        }    }}//Output: 4 1 3 2 0

Example 2

Within a singlewhere clause, you can specify as many predicates as necessary by using the&& and|| operators. In the following example, the query specifies two predicates in order to select only the even numbers that are less than five.

class WhereSample2{static void Main(){    // Data source.    int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];    // Create the query with two predicates in where clause.    var queryLowNums2 =        from num in numbers        where num < 5 && num % 2 == 0        select num;    // Execute the query    foreach (var s in queryLowNums2)    {        Console.Write(s.ToString() + " ");    }    Console.WriteLine();    // Create the query with two where clause.    var queryLowNums3 =        from num in numbers        where num < 5        where num % 2 == 0        select num;    // Execute the query    foreach (var s in queryLowNums3)    {        Console.Write(s.ToString() + " ");    }}}// Output:// 4 2 0// 4 2 0

Example 3

Awhere clause may contain one or more methods that return Boolean values. In the following example, thewhere clause uses a method to determine whether the current value of the range variable is even or odd.

class WhereSample3{    static void Main()    {        // Data source        int[] numbers = [5, 4, 1, 3, 9, 8, 6, 7, 2, 0];        // Create the query with a method call in the where clause.        // Note: This won't work in LINQ to SQL unless you have a        // stored procedure that is mapped to a method by this name.        var queryEvenNums =            from num in numbers            where IsEven(num)            select num;         // Execute the query.        foreach (var s in queryEvenNums)        {            Console.Write(s.ToString() + " ");        }    }    // Method may be instance method or static method.    static bool IsEven(int i) => i % 2 == 0;}//Output: 4 8 6 2 0

Remarks

Thewhere clause is a filtering mechanism. It can be positioned almost anywhere in a query expression, except it cannot be the first or last clause. Awhere clause may appear either before or after agroup clause depending on whether you have to filter the source elements before or after they are grouped.

If a specified predicate is not valid for the elements in the data source, a compile-time error will result. This is one benefit of the strong type-checking provided by LINQ.

At compile time thewhere keyword is converted into a call to theWhere Standard Query Operator method.

See also

Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, seeour contributor guide.

Feedback

Was this page helpful?

YesNo

In this article

Was this page helpful?

YesNo