【发布时间】:2013-06-14 07:31:00
【问题描述】:
我正在使用谓词构建器类,我需要在字符串数组上调用 contains 方法,因此在下面的代码中而不是无线电中,我将传入一个字符串数组:
wherePredicate = wherePredicate.Or(m => m.MediaType.Contains("Radio"));
完整的代码部分:
if (param.iMediaGroupID > 0)
{
var wherePredicate = PredicateBuilder.False<MediaChannelModel>();
var ss = new NeptuneRepository<Lookup_MediaTypes>();
var mediagroups = ss.FindWhere(m => m.MediaGroupID == param.iMediaGroupID).Select(m => m.Name);
//problem area
wherePredicate = wherePredicate.Or(m => mediagroups.Contains(m.MediaType));
predicate = predicate.And(wherePredicate);
}
mediaGroups 是:["Radio","Tv","Magazine"]
如果m.MediaType 是这些值中的任何一个,则谓词为真。
有没有办法在 C# 中做到这一点?
【问题讨论】:
-
您想知道 MediaType 是否是字符串数组的一部分?这是正确的吗?
-
这可能会给你一个提示:stackoverflow.com/questions/2912476/…
-
不就是
m => mediaGroups.Any(g => m.MediaType == g)
标签: c# linq predicatebuilder