如何在linq中创建具有多个条件的orselect [英] how to create orselect with multi condition in linq

查看:80
本文介绍了如何在linq中创建具有多个条件的orselect的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我想要选择数据女巫,例如sensor =sen或Area =aa

i写下这段代码:

Hi I want select data witch for example sensor="sen" or Area="aa"
i write this code:

var listsegment2 = from ls1 in SMDB.SegmentInfos
where (ls1.Area == area || string.IsNullOrEmpty(area)) && (ls1.Sensor == sen||string.IsNullOrEmpty(sen)) && (ls1.System == sys || string.IsNullOrEmpty(sys)) && (ls1.Jbo == jbo || string.IsNullOrEmpty(jbo))
select new
{}



但此代码返回和条件结果

help我要更正代码,请


but this code return andconditions result
help me to correct code,please

推荐答案

如果我正确理解了这个问题,你已经使用了&&你应该在哪里使用||



所以这样的事情:

If I understood the question correctly, you have used && where you should've used ||

So something like this:
var listsegment2 = from ls1 in SMDB.SegmentInfos
                   where (  (ls1.Area == area || string.IsNullOrEmpty(area)) 
                         || (ls1.Sensor == sen || string.IsNullOrEmpty(sen))
                   )
                   && (ls1.System == sys || string.IsNullOrEmpty(sys)) 
                   && (ls1.Jbo == jbo || string.IsNullOrEmpty(jbo))
select new
{}


如果传感器和区域可以是sen或aa ,然后只需使用OR =||



string.Equals是比较字符串的好方法。



If Sensor and Area can be "sen" or "aa", then just use OR = "||"

string.Equals is a great method to compare strings.

string sensor = "sen";
string area = "aa";
string system = "sys";

var listSegment2 = from ls1 in SMDB.SegmentInfos
                   where string.Equals(ls1.Area, area, StringComparison.InvariantCultureIgnoreCase)
                   || string.Equals(ls1.Sensor, sen, StringComparison.InvariantCultureIgnoreCase)
                   || string.Equals(ls1.System, system, StringComparison.InvariantCultureIgnoreCase)
                   select ls1;

foreach (var segment in listSegment2)
{
  Console.WriteLine("Segment - Area:" + segment.Area + ", Sensor:" + segment.Sensor);
}


这篇关于如何在linq中创建具有多个条件的orselect的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆