正在检查C#LINQ表达式中的NULL

本文关键字:NULL 表达式 C#LINQ 检查 | 更新日期: 2023-09-27 18:00:50

我有一个LINQ表达式,它将日期格式从UTC转换为用户区域性的日期格式。

for (int i = 0; i < datexml.count ; i++)
{
    if (datatype.ToLower() == "date")
    {  
        myList.Select(c => { ((object[])(c))[i] =    ConvertFromUTCDate( Convert.ToDateTime (((object[])(c))[i]),  UserTimeZone); return c; }).ToList();
    }
}

有时,如果(object[]((c(([i]中的日期值错误地存储在DB中,则该值可能为null或具有字符串或小数。

如何检查这些值是否为空并具有日期,然后在此表达式中进行转换。

正在检查C#LINQ表达式中的NULL

为了避免增加更多的复杂性并能够轻松读取和维护代码,提取匿名方法并将其作为命名方法

来自

c=>{((object[]((c(([i]=ConvertFromUTCDate(Convert.ToDateTime(((object[]((c(([i](,UserTimeZone(;返回c;}

public DateTime ConvertFromObjectToDate(object dbdate){
    if(dbdate is null || !(dbdate is DateTime))return DateTime.MinValue;
     var result =   ConvertFromUTCDate(Convert.ToDateTime (dbdate),UserTimeZone); 
     return result; 
}

c => {((object[])(c))[i] =  ConvertFromObjectToDate(((object[])(c))[i]);}