相关疑难解决方法(0)

尝试使用表达式树过滤Nullable类型

我在下面粘贴了我的整个测试应用程序.它相当紧凑,所以我希望这不是问题.您应该能够简单地将其剪切并粘贴到控制台应用程序中并运行它.

我需要能够过滤任何一个或多个Person对象的属性,直到运行时我才知道哪一个.我知道这已经讨论了所有的地方,我已经调查过,并且我也使用了PredicateBuilderDynamic Linq Library等工具,但是他们的讨论倾向于更多地关注排序和排序,并且每个人都在努力解决他们的问题.面对Nullable类型时遇到的问题.所以我认为我会尝试至少构建一个可以解决这些特定情况的补充过滤器.

在下面的例子中,我试图过滤掉在某个特定日期之后出生的家庭成员.关键是被过滤对象上的DateOfBirth字段是DateTime属性.

我得到的最新错误是

类型'System.String'和'System.Nullable`1 [System.DateTime]'之间没有定义强制运算符.

这是问题所在.我曾尝试过几种不同的铸造和转换方法,但不同程度的失败.最终,这将适用于EF数据库,该数据库也在转换方法(例如DateTime.Parse( - ))上犹豫不决.

任何帮助都将不胜感激!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();
        people.Add(new Person { FirstName = "Bob", LastName = "Smith", DateOfBirth = DateTime.Parse("1969/01/21"), Weight=207 });
        people.Add(new Person { FirstName = "Lisa", LastName = "Smith", DateOfBirth = DateTime.Parse("1974/05/09") });
        people.Add(new Person { FirstName = "Jane", LastName …
Run Code Online (Sandbox Code Playgroud)

linq lambda expression-trees c#-4.0

2
推荐指数
1
解决办法
6497
查看次数

标签 统计

c#-4.0 ×1

expression-trees ×1

lambda ×1

linq ×1