首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LINQ to SQL选择字符串中包含任何单词的所有记录split

LINQ to SQL选择字符串中包含任何单词的所有记录split
EN

Stack Overflow用户
提问于 2012-07-25 15:11:13
回答 3查看 1.4K关注 0票数 0

string1:方法

string2:你好吗?

我想要做的是从数据库中选择所有记录,方法是对照string1检查string2,并选择任何带有"How“或"Are”或"you“的记录。

代码语言:javascript
复制
 pager1.ItemCount = appliedQuery.Where(q => q.string1.Contains(string2)).count();

PlEASE注意: String1只是一个单词,我只想获得数据库中任何单词在string2中出现的所有记录。

我知道string2需要拆分,但是拆分之后,我如何在linq查询语句中使用它来获取记录呢?

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-26 12:27:01

看看我是如何构造linq查询的。我希望这能帮到你。只需尝试将代码复制并粘贴到您的控制台应用程序中即可查看结果。

代码语言:javascript
复制
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();
    } 
}
票数 1
EN

Stack Overflow用户

发布于 2012-07-25 15:26:10

string2拆分为字符串数组:

代码语言:javascript
复制
string[] words = string2.Split(' ');

然后检查string1是否在数组中的任何项中:

代码语言:javascript
复制
pager1.ItemCount = appliedQuery.Where(q => words.Contains(q.string1)).Count();
票数 2
EN

Stack Overflow用户

发布于 2012-07-25 15:19:45

一种可能的解决方案是:

代码语言:javascript
复制
foreach(string s in string2.Split(' '))
{
    pager1.ItemCount += appliedQuery.Where(q => q.string1.Contains(s)).count(); 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11644444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档