2014-03-02 59 views
1

我想从多个字符串匹配中进行选择。比较具有多个字符串的字符串

条件 -

选择从CardTagTables其列CardTagName没有这些strings- String1String2

List<string> stringArray =new List<string>{ "String1", "String2" }; 
var query = (from u in db.CardTables 
      join v in db.CardTagTables 
      on u.CardID equals v.FKCardTagID 
      where u.IsApproved == "YES" && 
        !v.CardTagName.Contains(stringArray.ToString()) 

我想除了在stringArray串仅提取记录。

有两个strings- String1String2

回答

1

更换

v.CardTagName.Contains(stringArray.ToString() 

v.CardTagName.Any(element => stringArray.Contains(element)) 
+0

它说我'列表 .Contains(string)'有一些无效的参数。 – user3163213

+0

CardTagName是什么类型? – nvoigt

+0

'nvarchar'类型。 – user3163213

0

尝试somethign这样的:

var result = CardTagTables.Select(x => stringArray.Any(y => x.CardTagName.Contains(y))).ToList(); 

个It's未经测试,但我认为这是观念;)

1

你只需要改变Contains秩序,而不是这样的:

!v.CardTagName.Contains(stringArray.ToString()) 

尝试:

!stringArray.Contains(v.CardTagName)