Using Linq to do a Contains with multiple values

偶尔善良 提交于 2019-12-03 12:17:21
sa_ddam213

Maybe somthing like

C# Linq:

var meds = (from m in Medications 
            where names.Any(name => name.Equals(m.BrandName) || m.GenericName.Contains(name)) 
            select m);

Extension methods:

List<Medication> meds = Medications
    .Where( med =>
        names.Any( name =>
            name.Equals( med.BrandName ) || med.GenericName.Contains( name )
        )
    )
    .ToList();

I think you want to try:

var query = Medications.Where(m => names.Contains(m.BrandName) || names.Contains(m.GenericName));

Just do a join between the medication table and the names array.

var query = from m in Medications
            from n in in names
            where m.BrandNames.Any(bn => bn.Contains(n)) || m.GenericNames.Any(gn => gn.Contains(n))
            select m;

If I've understood your right:

var meds = Medications.Where(m => names.Contains(m.BrandName) || names.Contains(m.GenericName));
var x = (from c in Reports where c.HKPlanningQty == xi select c).Select(u=>new {Style=u.Style,QTN=u.HKPlanningQty}).OrderBy(u =>u.Style ).Where(v=>v.Style.Contains("44")||v.Style.Contains("58"));
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!