查询包含一组指定词语的句子

 1  class FindSentences
 2 {
 3      static  void Main()
 4     {
 5          string text =  @" Historically, the world of data and the world of objects  " +
 6          @" have not been well integrated. Programmers work in C# or Visual Basic  " +
 7          @" and also in SQL or XQuery. On the one side are concepts such as classes,  " +
 8          @" objects, fields, inheritance, and .NET Framework APIs. On the other side  " +
 9          @" are tables, columns, rows, nodes, and separate languages for dealing with  " +
10          @" them. Data types often require translation between the two worlds; there are  " +
11          @" different standard functions. Because the object world has no notion of query, a  " +
12          @" query can only be represented as a string without compile-time type checking or  " +
13          @" IntelliSense support in the IDE. Transferring data from SQL tables or XML trees to  " +
14          @" objects in memory is often tedious and error-prone. ";
15 
16          //  Split the text block into an array of sentences.
17           string[] sentences = text.Split( new  char[] {  ' . '' ? '' ! ' });
18 
19          //  Define the search terms. This list could also be dynamically populated at runtime.
20           string[] wordsToMatch = {  " Historically "" data "" integrated " };
21 
22          //  Find sentences that contain all the terms in the wordsToMatch array.
23           //  Note that the number of terms to match is not specified at compile time.
24           var sentenceQuery =  from sentence  in sentences
25                             let w = sentence.Split( new  char[] {  ' . '' ? '' ! ''   '' ; '' : '' , ' },
26                                                     StringSplitOptions.RemoveEmptyEntries)
27                              where w.Distinct().Intersect(wordsToMatch).Count() == wordsToMatch.Count()
28                              select sentence;
29 
30          //  Execute the query. Note that you can explicitly type
31           //  the iteration variable here even though sentenceQuery
32           //  was implicitly typed. 
33           foreach ( string str  in sentenceQuery)
34         {
35             Console.WriteLine(str);
36         }
37 
38          //  Keep the console window open in debug mode.
39          Console.WriteLine( " Press any key to exit ");
40         Console.ReadKey();
41     }
42 }
43  /*  Output:
44  Historically, the world of data and the world of objects have not been well integrated
45  */

转载于:https://www.cnblogs.com/dingshouqing/archive/2012/03/12/2392038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值