匿名类型为空值
本文关键字:空值 类型 | 更新日期: 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>
之间的转换错误。