Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 可选地在linq中加载/选择列_C#_Linq - Fatal编程技术网

C# 可选地在linq中加载/选择列

C# 可选地在linq中加载/选择列,c#,linq,C#,Linq,假设我有一个像这样的linq查询 var stuff = from t1 in TableOne let t2 = t1.TableTwo where t1.id = "someId" select new { column1 = t1.Col1, column2 = t2.Col1

假设我有一个像这样的linq查询

var stuff = from t1 in TableOne
            let t2 = t1.TableTwo
            where t1.id = "someId"
            select
            new
               {
                 column1 = t1.Col1,
                 column2 = t2.Col1
                 column3 = (from t3 in TableThree
                            where t3.id = "someId"
                            select new SomeObject
                            {
                                Field1 = t3.Col1,
                                Field2 = t3.Col2
                            }).ToList()
                }

现在,在某些场景中,我希望加载第3列中的数据,例如,当传入方法的参数包含this not null时。当参数为null时,为了效率起见,我不想加载它。关于如何实现所需结果的任何建议?

在子查询中检查参数
someParameter
是否为空

column3 = (from t3 in TableThree
           where 
              someParameter != null &&
              t3.id == "someId"
           select new SomeObject
           {
                Field1 = t3.Col1,
                Field2 = t3.Col2
           }).ToList()

if(非空)/*您拥有的*/其他。。。选择新的{/*不要在这里选择第3列*/}
也许?我喜欢答案如此简单,应该一直盯着我看!谢谢