相关疑难解决方法(0)

在使用Union表达式之前,我应该如何初始化IQueryable变量?

我已经在IQueryable类型上创建了一个扩展方法,它接受一些实体并根据一些标准对它们进行过滤.我的问题是我不能返回由变量组成的Union表达式,而不是先将所有变量初始化.作为aprears的空值无效.

public static IQueryable<Person> FilterHairColors(this IQueryable<Person> subQuery, string[] hairColors)
    {
        IQueryable<Person> q1 = null;
        IQueryable<Person> q2 = null;
        IQueryable<Person> q3 = null;
        IQueryable<Person> q4 = null;

        foreach (var value in hairColors)
        {
            switch (value)
            {
                case "1":
                    q1 = subQuery.Where(p => p.HairColor_bright == true);
                    break;
                case "2":
                    q2 = subQuery.Where(p => p.HairColor_brown == true);
                    break;
                case "3":
                    q3 = subQuery.Where(p => p.HairColor_dark == true);
                    break;
                case "4":
                    q4 = subQuery.Where(p => p.HairColor_red == true);
                    break;
            }
        }
        return q1.AsQueryable().Union(q2.AsQueryable()).Union(q3.AsQueryable()).Union(q4.AsQueryable());
    } …
Run Code Online (Sandbox Code Playgroud)

c# linq iqueryable

6
推荐指数
1
解决办法
8796
查看次数

标签 统计

c# ×1

iqueryable ×1

linq ×1