|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。在from入手下手子句和select或group停止子句之间,一切其他子句(where、join、orderby、from、let)都是可选的。任何可选子句都能够在查询注释中利用零次或屡次。
where子句
利用where子句能够依据一个或多个谓词表达式选择失落源数据中的某些元素。以下示例中的where子句含有两个谓词。
IEnumerable<City>queryCityPop=
fromcityincities
wherecity.Population<200000&&city.Population>100000
selectcity;
orderby子句
利用orderby子句能够按升序或降序对了局举行排序。您还能够指定主要排序按次。上面的示例利用Area属性对country工具实行次要排序,然后利用Population属性实行主要排序。
IEnumerable<Country>querySortedCountries=
fromcountryincountries
orderbycountry.Area,country.Populationdescendingselectcountry;
ascending关头字是可选的;假如未指定按次,则它是默许排序按次。
join子句
利用join子句能够依据每一个元素中指定键之间的相称对照,对一个数据源中的元素与别的一个数据源中的元素举行联系关系和/或组合。在LINQ中,连接操纵是针对其元素具有分歧范例的工具序列实行的。在连接两个序列以后,必需利用select或group语句指定要存储到输入序列中的元素。还可使用匿名范例将每组联系关系元素中的属性组合为输入序列的新范例。上面的示例对其Category属性与categories字符串数组中的某个种别相婚配的prod工具举行联系关系。其Category不与categories中的任何字符串婚配的产物会被选择失落。select语句投影了一个新范例,其属性取自cat和prod。
varcategoryQuery=
fromcatincategories
joinprodinproductsoncatequalsprod.Category
selectnew{Category=cat,Name=prod.Name};
经由过程利用into关头字将join操纵的了局存储光临时变量中,还能够实行分组连接。
let子句
利用let子句能够将表达式(如办法挪用)的了局存储到新的局限变量中。鄙人面的示例中,局限变量firstName存储了Split前往的字符串数组的第一个元素。
string[]names={"SvetlanaOmelchenko","ClaireODonnell","SvenMortensen","CesarGarcia"};
IEnumerable<string>queryFirstNames=
fromnameinnames
letfirstName=name.Split(newchar[]{})[0]
selectfirstName;
foreach(stringsinqueryFirstNames)
Console.Write(s+"");
//OutPut:SvetlanaClaireSvenCesar
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具) |
|