使用Linq执行包含多个值的包含

Jho*_*rra 12 c# linq contains

我有一个药物表,我正在寻找某些药物名称,但我需要搜索多个名称.这是我目前使用它的地方.

string[] names = new string[2];
names[0] = "apixaban";
names[1] = "desirudin";

var meds = (from m in Medications where names.Any(m.BrandName.Contains) || names.Any(m.GenericName.Contains) select m);
Run Code Online (Sandbox Code Playgroud)

我有什么不工作,我现在卡住了.我知道我很亲密,但我无法弄清楚出了什么问题.

编辑

为了澄清,如果我正在搜索的名称是desirudin,那么BrandName或Generic名称将更长,所以我必须在数据库中的字段上包含.

编辑2 这是我收到的错误.

Unsupported overload used for query operator 'Any'.
Run Code Online (Sandbox Code Playgroud)

这就是我最终的结果

var meds = (from m in db.AdmissionMedications where 
(names.Any(n => m.BrandName.Contains(n)) || names.Any(n => m.GenericName.Contains(n))
) select m);
Run Code Online (Sandbox Code Playgroud)

sa_*_*213 25

也许有点像

C#Linq:

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

扩展方法:

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