我开始学习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在线的好地方吗?
答案 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将返回的内容。在这种情况下,具有IEnumerable
和Length
属性的新对象将Words
。
我希望它对您有帮助,我建议您article。