<p>I am playing with the new stuff of C#3.0 and I have this code (mostly taken from <a href="http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx" rel="noreferrer">MSDN</a>) but I can only get true,false,true... and not the real value :</p>

<pre><code>        int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

        var oddNumbers = numbers.Select(n =&gt; n % 2 == 1);

        Console.WriteLine("Numbers &lt; 5:");
        foreach (var x in oddNumbers)
        {
            Console.WriteLine(x);
        }
</code></pre>

<p>How can I fix that to show the list of integer?</p>

Change your "Select" to a "Where"
```
```
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

    var oddNumbers = numbers.Where(n => n % 2 == 1);

    Console.WriteLine("Odd Number:");
    foreach (var x in oddNumbers)
    {
        Console.WriteLine(x);
    }
```
```
The "Select" method is creating a new list of the lambda result for each element (true/false).  The "Where" method is filtering based on the lambda.
In C#, you could also use this syntax, which you may find clearer:
```
```
var oddNumbers = from n in numbers
                         where n % 2 == 1
                         select n;
```
```
which the compiler translates to:
```
```
var oddNumbers = numbers.Where(n => n % 2 == 1).Select(n => n);
```
```