LinQ WHERE string.Contains or string.IndexOf?

后端 未结 4 407
暗喜
暗喜 2020-12-06 14:35

I need to write something that would give the same result as:

var result = collection.Where( o => o.Name.IndexOf( \"some_string2\" ) != -1 || o.Name.Index         


        
4条回答
  •  再見小時候
    2020-12-06 15:06

    If you want to check whether o.Name contains some string from the stringsToCheck, I would suggest to use LinqKit and build the query with PredicateBuilder.

    var predicate = PredicateBuilder.False();
    var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList();
    
    foreach(var str in stringsToCheck)
    {
         var tmp = str; 
         predicate = predicate.Or(o=> o.Name.IndexOf(tmp) != -1);
    } 
    resultQuery = collection.Where(predicate); 
    

提交回复
热议问题