匿名类型为空值

本文关键字:空值 类型 | 更新日期: 2023-09-27 18:06:10

我在c#中有一个例程,其中我拉出对象列表如下:

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

一旦我有了这些数据,我需要从中派生一个名称列表,我正在这样做:

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

然后我将列表绑定到listview:

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

如果有数据,一切都很好,如果没有数据,就会爆炸。我在。aspx端有emptyDataTemplates来显示一条消息,如果没有任何记录,但我不知道如何将fundingNames初始化为null。

匿名类型为空值

问题是data可以是null

您需要在创建LINQ查询之前检查是否存在这种情况:

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

我猜FundingName是这里的string。如果没有,请进行相应的更改。如果是这样的话,为什么要用new { ... }创建匿名类型呢?直接返回字符串:

from ...
select names.FundingNames;

正如PaulF正确指出的那样,您需要这样做,否则您可能会得到List<string>List<AnonymousTypeContainingOnlyOneString>之间的转换错误。

相关文章: