Alex D
Alex D

Reputation: 828

Linq variable declare conditional statement

I have a LINQ query that will have two different results from the variable "filter". How to I declare the query variable "sales" outside the conditional statement?

        Int filter = sale.filter;

        if (filter is null)
        {
            var sales = from s in _db.Sales
                select s;
        }
        else
        {
           var  sales = from s in _db.Sales
                where s.SalesStatusID == salesStatusfilter
                select s;
        }

Upvotes: 0

Views: 927

Answers (3)

Fabio
Fabio

Reputation: 32445

You can add Where based on the condition, which give you possibility to using var without declaring type explicitly.

var sales = _db.Sales;
if (filter != null)
{
    sales = sales.Where(s => s.SalesStatusID == salesStatusfilter);
}

// use result later
foreach (var sale in sales)
{
    // ...
}

Upvotes: 0

Arão Benjamin
Arão Benjamin

Reputation: 51

You can declare it as a List<Sale> (I'm supposing Sales is a collection of Sale's.

    Int filter = sale.filter;

    List<Sale> sales;

    if (filter == null) {
        sales = _db.Sales.ToList();
    }
    else
    {
        sales = _sb.Sales
                .Where(s => s.SalesStatusID == salesStatusfilter)
                .ToList();
    }

Depending on what you want to do with the data it should suffice.

Upvotes: 1

Daniel A. White
Daniel A. White

Reputation: 190907

Declare it as IQueryable<Sale> if using EF or IEnumerable<Sale> if using LINQ to Objects.

If you hover over sales, Visual Studio can tell you what to use.

Upvotes: 1

Related Questions