0

我的 Linq 查询是这样的:

IEnumerable<Results> subResult = from query in datatable.AsEnumerable()
                              select new Results
                                  {
                                      Name = query.Field<string>("Name"),
                                      Date = query.Field<DateTime?>("Date")
                                  }

在这一个中,“名称”字段中有一些空值,如果有的话,我如何将其设置为零null。怎么做?

4

3 回答 3

4

使用 ??操作员

IEnumerable<Results> subResult = from query in datatable.AsEnumerable()
                              select new Results
                              {
                                  Name = query.Field<string>("Name")?? string.Empty,
                                  Date = query.Field<DateTime?>("Date")
                              }
于 2013-01-28T19:09:10.320 回答
2

您是否尝试过合并运算符?http://msdn.microsoft.com/en-us/library/ms173224.aspx

就像是:

Name = query.Field<string>("Name") ?? "0"
于 2013-01-28T19:10:42.783 回答
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; }
}
于 2013-01-28T19:20:38.763 回答