string1:方法
string2:你好吗?
我想要做的是从数据库中选择所有记录,方法是对照string1检查string2,并选择任何带有"How“或"Are”或"you“的记录。
pager1.ItemCount = appliedQuery.Where(q => q.string1.Contains(string2)).count();PlEASE注意: String1只是一个单词,我只想获得数据库中任何单词在string2中出现的所有记录。
我知道string2需要拆分,但是拆分之后,我如何在linq查询语句中使用它来获取记录呢?
提前感谢
发布于 2012-07-26 12:27:01
看看我是如何构造linq查询的。我希望这能帮到你。只需尝试将代码复制并粘贴到您的控制台应用程序中即可查看结果。
class Program
{
static void Main(string[] args)
{
// List of strings that you may consider it from your
/// database which is String1
List<string> lstStrings = new List<string>();
lstStrings.Add("twenty one");
lstStrings.Add("twenty two");
lstStrings.Add("twenty three");
lstStrings.Add("twenty four");
// The string to compare to which is your String2
string strString = "one two four";
// Splitting the strings to be compared
string[] strArray = strString.Split(' ');
// The linq that helps you query the data exactly as what you wanted
var result = (from string A in lstStrings
from string B in strArray
where A.Contains(B)
select A).Distinct();
// Count result
Console.WriteLine(result.Count());
// Individual values
foreach (string str in result)
{
Console.WriteLine(str);
}
Console.ReadLine();
}
}发布于 2012-07-25 15:26:10
将string2拆分为字符串数组:
string[] words = string2.Split(' ');然后检查string1是否在数组中的任何项中:
pager1.ItemCount = appliedQuery.Where(q => words.Contains(q.string1)).Count();发布于 2012-07-25 15:19:45
一种可能的解决方案是:
foreach(string s in string2.Split(' '))
{
pager1.ItemCount += appliedQuery.Where(q => q.string1.Contains(s)).count();
}https://stackoverflow.com/questions/11644444
复制相似问题