初学LinQ不懂,请教分析下,在线谢谢.
Assume the following namespaces are imported:
using System;
using System.Linq;
using System.Data.Linq;
using System.Xml.Linq;
using System.Collections;
and that the following array is defined:
string[] colors = { "green", "brown", "blue", "red" };
What is the output from the following?
var query =
from c in colors
where c.Length == colors.Max (c2 => c2.Length)
select c;
foreach (var element in query)
Console.WriteLine (element);
------解决方案--------------------不就是一个 linq查询,然后再输出出来.
不晓得你想分析什么?
------解决方案--------------------
这个Linq查询的意思是
首先找出 color array中长度最长的值,就是这条语句
colors.Max (c2 => c2.Length)
然后找出color array中长度和这个值一样的所有string
就是这么个意思,很简单
------解决方案--------------------Min - 返回集合的最小值;不延迟
Max - 返回集合的最大值;不延迟
长度最大的值
输出就知道了
参考
------解决方案--------------------
你要是有点Sql知识就好理解了。
var query =
from c in colors //从Colors里面进行选择
where c.Length == colors.Max (c2 => c2.Length) //选出哪些长度等于最大长度的项
select c; //返回的集合中的项。
而LinQ实际上没有啥新东西,只是匿名类,匿名delegate的简化写法而已。
上面的LinQ语句可以翻译成一长串使用匿名delegate的等值语句。
要想了解参考
Professional C# 2008 的第11章 Language Integrated Query.