如何获取where条件是字符串数组的记录

时间:2015-01-07 08:55:46

标签: c# linq

在下面的代码中,profile是一个字符串。我想知道在profile是字符串数组或列表的情况下如何编写查询。即数组或列表可以有多个元素,如{'Profile1','profile2'}

var ccData = (from p in db.ChannelContacts where p.ProfileId == profile select p);

2 个答案:

答案 0 :(得分:2)

您可以使用有效的联接:

var ccData = from p in db.ChannelContacts 
             join profileID in profiles // your collection
             on p.ProfileId equals profileID
             select p;

另一个效率较低的选项是Contains

var ccData = from p in db.ChannelContacts 
             where profiles.Contains(p.ProfileId)
             select p;

答案 1 :(得分:1)

只需询问profile是否包含ProfileId

var ccData = (from p in db.ChannelContacts 
              where profile.Any(prof => prof == p.ProfileId) 
              select p);