在asp.net中解释LINQ中的查询

时间:2014-09-06 16:25:29

标签: c# linq

我开始学习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在线的好地方吗?

1 个答案:

答案 0 :(得分:1)

所以,你的单词名为words

from word in words

此语句表示您需要数组中的一个项目,并且此项目将在整个linq语句中调用word

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

这会有点刺耳。现在,您按字母长度对单词进行分组(转换为大写)并将其放入表示gr个对象的IGrouping<K,V>中 - 您可能会看到group语句返回IGrouping<K,V> objects

orderby gr.Key

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

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

通过select语句,您可以确定整个LINQ将返回的内容。在这种情况下,具有IEnumerableLength属性的新对象将Words

我希望它对您有帮助,我建议您article