解释asp.net中LINQ中的查询

本文关键字:查询 LINQ 解释 net asp | 更新日期: 2023-09-27 18:21:05

我开始学习LINQ技术,并在[http://msdn.microsoft.com/en-us/library/bb397896.aspx]

string sentence = "the quick brown fox jumps over the lazy dog";
           // Split the string into individual words to create a collection. 
           string[] words = sentence.Split(' ');
           // Using query expression syntax. 
           var query = from word in words
                       group word.ToUpper() by word.Length into gr
                       orderby gr.Key
                       select new { Length = gr.Key, Words = gr };
           // Using method-based query syntax. 
           var query2 = words.
               GroupBy(w => w.Length, w => w.ToUpper()).
               Select(g => new { Length = g.Key, Words = g }).
               OrderBy(o => o.Length);
           foreach (var obj in query)
           {
               Console.WriteLine("Words of length {0}:", obj.Length);
               foreach (string word in obj.Words)
                   Console.WriteLine(word);
           }
           // This code example produces the following output: 
           // 
           // Words of length 3: 
           // THE 
           // FOX 
           // THE 
           // DOG 
           // Words of length 4: 
           // OVER 
           // LAZY 
           // Words of length 5: 
           // QUICK 
           // BROWN 
           // JUMPS 

有人能为我解释一下这个"疑问"吗?你能推荐一个在线学习LINQ的好地方吗??

解释asp.net中LINQ中的查询

所以,单词在名为words的数组中。

from word in words

此语句表示您想要数组中的一个项,并且此项将在整个linq语句中被称为word

group word.ToUpper() by word.Length into gr

这会有点苛刻。现在,您正在根据单词的长度对单词(转换为大写)进行分组,并将其放入代表IGrouping<K,V>对象的gr中——正如您可能看到的那样,group语句返回IGrouping<K,V> objects

orderby gr.Key

此语句按Key属性对该分组单词进行排序。7属性表示分组值。

select new { Length = gr.Key, Words = gr }

通过select语句,您可以确定整个LINQ将返回什么。在这种情况下,它将是具有LengthWords属性的新对象的IEnumerable

我希望它能帮助你,我推荐你这篇文章。