TrevorGoodchild
TrevorGoodchild

Reputation: 1060

Null value for anonymous types

I have a routine in C# where I pull a list of objects as such:

var data = sdfController.GetFundingSummary(CurrentUser.UserId, _companyId, "category");

Once I have that data, I need to derive a list of names from it, which I'm doing thusly:

var fundingNames = 
                (from names in data.AsEnumerable() 
                 where names.FundingYear.Equals(_year.ToString())
                 select new  { FundingName = names.FundingName }).Distinct().ToList();

and then I'm binding that list to a listview:

lvSDF.DataSource = fundingNames;
lvSDF.DataBind();

It all works great if there's data, blows up if there isn't any. I have emptyDataTemplates in place on the .aspx side to display a message if there aren't any records but I can't figure out how to initialize fundingNames to null.

Upvotes: 0

Views: 1143

Answers (1)

InBetween
InBetween

Reputation: 32780

The problem is that data can be null.

You need to check if this is the case before creating the LINQ query:

var fundingNames = data = null ? ...your query... : new List<string>();

Im guessing FundingName is a string here. Change accordingly if not. Also if that's the case, why are you creating an anonymous type with new { ... }? Return the string directly:

from ...
select names.FundingNames;

As PaulF correctly points out you need to do this or you'll probably get a conversion error between List<string> and List<AnonymousTypeContainingOnlyOneString>.

Upvotes: 1

Related Questions