0

たとえば、各テキストが次のように見えるテキストのリストがあります。

私たちは、議論するだけでなく、答えられる質問を好みます。詳細を提供します。あなたの研究を共有してください。あなたの質問がこのウェブサイトに関するものである場合

can be answeredそして、テキストのリストを検索して、上記のテキストを を持つテキストとして返したいと思いますcan be answered。どうすればいいですか?

試しContains()ましたが、何も返されません。私のコードは次のようになります。

IEnumerable<App_ProjectTask> temp;
if (!String.IsNullOrEmpty(query))
{
    temp = dc.App_ProjectTasks.Where(x => x.Title.Contains(query) || x.Description.Contains(query));
    if (temp.Count() > 0)
    {
        results = temp.ToList();
    }
}
4

5 に答える 5

4
String text = "We prefer questions that can be answered, "+
               "not just discussed.Provide details. Share your research."+
               "If your question is about this website";
if (text.Contains("can be answered"))
{
    Console.WriteLine("Text found");
}

上記のコードは を出力しますText found

テキストを持つすべての を取得するにはString、次のようにします。

var query =
    from text in yourListOfTexts
    where text.Contains("can be answered")
    select text;
于 2012-06-26T16:30:05.223 に答える
3

含むはずです。

var strList = new List<String>();
string itemSearch = "string to search for";

foreach (string str in strList)
{
    if(str.Contains(itemSearch))
    {
        return str;
    }
}
于 2012-06-26T16:27:19.390 に答える
0

containsメソッドにToLower()を使用することについては、いくつか言及されています。パフォーマンスを得るには、string.IndoexOf( "string"、StringComparison.OrdinalIgnoreCase)を使用する必要があります。

つまり、OPで大文字と小文字を区別しないように検索する必要がある場合です。

大文字と小文字を区別しない'Contains(string)'

于 2012-06-26T20:11:10.223 に答える
0

これは私にとってはうまくいきます:これは基本的にあなたがしたことですが、私は私のクラスを見せました..

    private void WriteLine(String text)
    {
        textBox1.Text += text + Environment.NewLine;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        List<TestClass> list = new List<TestClass>();

        list.Add(new TestClass { Title = "101 unanswered questions", Description = "There are many questions which go unanswered, here are our top 1001" });
        list.Add(new TestClass { Title = "Best of lifes questions", Description = "Many of lifes questions answered" });
        list.Add(new TestClass { Title = "Top 10 smart answers", Description = "Top 10 smart answers for common interview questions" });

        var results =
            list.Where(x => x.Description.Contains("answered questions") | x.Title.Contains("answered questions"));
        foreach (TestClass res in results)
        {
            WriteLine(String.Format("Title: {0}, Desc: {1}", res.Title, res.Description));
        }
    }
}

public class TestClass
{
    public String Title;
    public String Description;
    public String Contents;

    public TestClass()
    {
        Title = "";
        Description = "";
        Contents = "";
    }
}
于 2012-06-26T17:22:34.013 に答える
-1

試す:

 IEnumerable<App_ProjectTask> temp;
if (!String.IsNullOrEmpty(query))
{
temp = dc.App_ProjectTasks.Where(x => x.Title.ToLower().Contains(query.ToLower()) || x.Description.ToLower().Contains(query.ToLower()));
if (temp.Count() > 0)
{
    results = temp.ToList();
}
}
于 2012-06-26T16:35:54.147 に答える