我的Linq查询是这样的:
IEnumerable<Results> subResult = from query in datatable.AsEnumerable()
select new Results
{
Name = query.Field<string>("Name"),
Date = query.Field<DateTime?>("Date")
}
在这一个中,有一些空值进入“名称”字段,如果有null
,如何将其设置为零。
怎么做?
答案 0 :(得分:4)
使用??操作
IEnumerable<Results> subResult = from query in datatable.AsEnumerable()
select new Results
{
Name = query.Field<string>("Name")?? string.Empty,
Date = query.Field<DateTime?>("Date")
}
答案 1 :(得分:2)
您是否尝试过合并运营商? http://msdn.microsoft.com/en-us/library/ms173224.aspx
类似的东西:
Name = query.Field<string>("Name") ?? "0"
答案 2 :(得分:0)
以下代码为我工作。你可以试试这个。
class Program
{
static void Main(string[] args)
{
DataTable datatable = new DataTable();
datatable.Columns.AddRange(new DataColumn[]
{
new DataColumn("Name",typeof(System.String)),
new DataColumn("Date",typeof(System.DateTime))
});
datatable.Rows.Add(new object[] { "Sam", DateTime.Now });
datatable.Rows.Add(new object[] { null, DateTime.Now });
IEnumerable<Results> subResult = from query in datatable.AsEnumerable()
select new Results
{
Name = query.Field<string>("Name") ?? "0" ,
Date = query.Field<DateTime?>("Date")
};
}
}
class Results
{
public string Name { get; set; }
public DateTime? Date { get; set; }
}