【发布时间】:2015-01-07 11:35:54
【问题描述】:
我需要写一些与以下结果相同的东西:
var result = collection.Where( o => o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 )
要检查的字符串的数量和值(some_string_1、2 和 3)是未知的(来自 DB),所以更通用的...
我尝试了以下方法,但失败了...
var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList();
var result = collection.Where( o => stringsToCheck.Contains( o.ToLower() ) );
换句话说,我需要从一个集合中检索名称包含某些特定字符串的所有对象。
【问题讨论】:
-
这是 EF 还是 LINQ to objects?
-
@flq 他使用了
collection这个词,所以可能两者都不是。 -
好吧,我问是因为如果它是 LINQ to objects 应该可以工作......
-
为什么会失败(错误信息是什么)?我假设您使用的是 LINQ to SQL。
-
@Seb Johnathan 实际上是正确的。您应该更正确地解释什么不起作用以及为什么。就我而言,我能够回答是因为我只是忽略了您的尝试,查看了您提出的问题并从头开始解决。如果我只看到您的第二个实现而不是完整的要求,我将不知道出了什么问题或如何解决它。