1.Where子句

  where子句的作用就是筛选元素,除了开始喝结束位置,where子句几乎可以出现在LINQ表达式的任意位置。一个LINQ表达式中可以有Where子句,也可以没有;可以有一个,可以有多个;多个where子句之间的关系相当于逻辑“与”,每个where子句可以包含1个或多个逻辑表达式,这些条件成为“谓词”,多个谓词之间用布尔运算符隔开,比如逻辑“与”用&&,逻辑“或”用||,而不是SQL中的and或or


namespace LINQ
{
class Custom
{
public string name
{
get;
set;
}
public int Age
{
get;
set;
}
public List<string> Table
{
get;
set;
}
}
}
  class Program
{
static void Main(string[] args)
{
List<Custom> my = new List<Custom>()
{
new Custom() { name="杜伟",Age=,Table=new List<string> { "",""} },
new Custom() { name="王玥",Age=,Table=new List<string>(){"","" } }
}; var b = from a in my
//筛选字符串长度为2 与名字开头有杜的
where(a.name.Length==&&a.name.Substring(,)=="杜")
select a; foreach (var item in b)
{
Console.WriteLine("姓名{0},年龄{1}",item.name,item.Age);
foreach (var item1 in item.Table)
{
Console.WriteLine(" 电话{0}",item1);
}
} Console.ReadKey();
}

2.select子句

  例子:最简单select就是直接输出from子句建立的那个范围变来那个;

  

 static void Main(string[] args)
{
int[] a = {,,,,,,, ,,};
var qury = from c in a
select c; foreach (var item in qury)
{
Console.WriteLine(item);
}
Console.ReadKey(); }

例2:对查询结果进行投影(转换)。下面查询表达式查询arr数组中的每一个元素,查询结果转换为一个集合对象的两个属性值:ID和Name,它在select子句中由匿名对象初始化器创建。每一个对象的ID属性的值是当前元素的值、Name属性的值为元素的值的字符串的表现形式。

   

 static void Main(string[] args)
{
int[] a = {,,,,,,, ,,};
var qury = from c in a
//使用匿名初始化器创建集合,select可以理解成要显示的格式
select new {id=c,name=c.ToString() }; foreach (var item in qury)
{
Console.WriteLine(item.id+"张"+item.name);
}
Console.ReadKey(); }
05-11 20:46