解释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的好地方吗??
所以,单词在名为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将返回什么。在这种情况下,它将是具有Length
和Words
属性的新对象的IEnumerable
。
我希望它能帮助你,我推荐你这篇文章。