gpt4 book ai didi

c# - 使用 Linq 执行具有多个值的 Contains

转载 作者:可可西里 更新时间:2023-11-01 08:17:01 26 4
gpt4 key购买 nike

我有一个药物表,我正在寻找某些药物名称,但我需要搜索多个名称。这是我目前的情况。

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);

我所拥有的不起作用,我目前被卡住了。我知道我很接近,但我不太清楚哪里出了问题。

编辑

为澄清起见,如果我要搜索的名称是地西卢定,那么品牌名称或通用名称会更长,因此我必须在数据库中的字段中包含该字段。

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

Unsupported overload used for query operator 'Any'.

这是我最终得到的结果

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

最佳答案

也许是这样

C# 林克:

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

扩展方法:

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

关于c# - 使用 Linq 执行具有多个值的 Contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com