Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查C LINQ表达式中的NULL_C#_Linq - Fatal编程技术网

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

C# 检查C LINQ表达式中的NULL,c#,linq,C#,Linq,我有一个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]), User

我有一个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();
    }
}
有时,如果对象[]c[i]中的日期值错误地存储在DB中,则该值可能为null或具有字符串或小数


如何检查值是否不为null且具有日期,然后在此表达式中转换它。

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

c=>{object[]c[i]=ConvertFromUTCDate Convert.ToDateTime 对象[]c[i],用户时区;返回c;}


我认为,通过尝试使用linq,您已经使自己的工作变得更加困难,您最好只做一个非linq的替代方案,让您能够正确且轻松地处理错误。您能告诉我们myList的类型吗?另外,您真的将字符串与ToLower进行比较吗?c的类型是什么?myList的类型是什么?所有的支架都在伤害我的眼睛。。。如果你能提供一个简短但完整的程序来演示这个问题,这将非常有帮助。我们也不知道ConvertFromUTCDate是什么,也不知道为什么要调用Select,然后调用ToList并忽略结果。基本上,这里的代码在当前形式下没有什么意义。ConvertFromUTCDate是一个静态函数,它将UTC日期转换为用户区域性日期,myList的类型为object myList=DataList.OfType.ToList;您还可以在OP的可怕linq中使用myList.Cast.Selectc=>ConvertFromObjectToDatec[i],它还将值设置为对象[]c[i]…修复了@Eric。事实上,我只是想证明简单的旧方法可以比Linq+ANONYUS方法更好。实际上并没有给出一个完全有效的解决方案。。。
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]);}