Reputation: 828
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
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
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
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