Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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 to对象中对LINQ查询进行ORing_C#_Linq_Linq To Objects - Fatal编程技术网

C# 使用表达式树在LINQ to对象中对LINQ查询进行ORing

C# 使用表达式树在LINQ to对象中对LINQ查询进行ORing,c#,linq,linq-to-objects,C#,Linq,Linq To Objects,我希望同一个字段与ORs合并,并在两个不同的文件之间与and合并 如果它们具有相同的字段值,则所有字段都将被OR。这允许我们说“州”、“均衡器”、“CA”或“州”、“均衡器”、“TX”和“名”、“均衡器”、“约翰” 有几种方法可以做到这一点: 1.链Where()s 您可以将两个Where()语句链接在一起,第一个语句带有OR,第二个语句满足and。当您以编程/动态方式构建查询时,这会变得非常有用: var output = input .Where(a =>

我希望同一个字段与ORs合并,并在两个不同的文件之间与and合并

如果它们具有相同的字段值,则所有字段都将被OR。这允许我们说“州”、“均衡器”、“CA”或“州”、“均衡器”、“TX”和“名”、“均衡器”、“约翰”


有几种方法可以做到这一点:

1.链
Where()s
您可以将两个
Where()
语句链接在一起,第一个语句带有OR,第二个语句满足and。当您以编程/动态方式构建查询时,这会变得非常有用:

var output = input
                .Where(a => a.State == "CA" || a.State == "TX")
                .Where(a => a.FirstName == "John");
由于
Where()
过滤器是串联运行的,因此效果是每个过滤器中的条件的逻辑和

2.插入逻辑 您也可以使用括号指示操作顺序:

var output = input
                .Where(a => (a.State == "CA" || a.State == "TX") 
                             && a.FirstName == "John");

people.Where(p=>p.State==“CA”| p.State=“TX”)。Where(p=>p.FirstName==“John”)如果是linq to objects查询,为什么要使用表达式构建查询?
var output = input
                .Where(a => (a.State == "CA" || a.State == "TX") 
                             && a.FirstName == "John");