Linq

The types of LINQ are mentioned below in brief.
 LINQ to Objects
 LINQ to XML(XLINQ)
 LINQ to DataSet
 LINQ to SQL (DLINQ)
 LINQ to Entities
Apart from the above, there is also a LINQ type named PLINQ which is Microsoft’s parallel LINQ.

var list = (from e in employees
join d in departments on e.DepartmentId equals d.DepartmentId
select new
{
EmployeeName = e.EmployeeName,
DepartmentName = d.Name,
});


foreach(var e in list)
{
Console.WriteLine("Employee name={0},Department Name={1}",e.EmployeeName,e.DepartmentName);
}

List<string> phrases = new List<string> { "an apple a day", "the quick brown fox" };

var query = from phrase in phrases
from word in phrase.Split(' ')
select word;

foreach(var s in query)
{
Console.WriteLine(s);
}

Console.ReadLine();

static void Main(string[] args)
{
int[] num = { -20, 12, 6, 10, 0, -3, 1 };

var posNum = from n in num
orderby n
select n;

Console.WriteLine("Values in ascending order: ");

foreach(int i in posNum)
{
Console.WriteLine(i);
}

var posNumsDesc = from n in num
orderby n descending
select n;

Console.WriteLine(" Values in descending order: ");


foreach(int i in posNumsDesc)
{
Console.WriteLine(i);
}

Console.ReadLine();
}

static void Main(string[] args)
{
List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };

IEnumerable<IGrouping<int, int>> query = from num in numbers
group num by num % 2;

foreach(var group in query)
{
Console.WriteLine(group.Key == 0 ? " Even numbers: " : " Odd numbers: ");

foreach(var i in group)
{
Console.WriteLine(i);
}
}

Console.ReadLine();

}

class Program
{
static void Main(string[] args)
{
Plant[] plants = new Plant[]
{
new CarnivorousPlant
{
Name="Venus Fly Trap",
TrapType="Snap Trap"
},
new CarnivorousPlant
{
Name="Pitcher Plant",
TrapType="Pitfall Trap"
},

new CarnivorousPlant
{
Name="Sundew",
TrapType="Flaypaper Trap"
},

new CarnivorousPlant
{
Name="WaterWheel Plant",
TrapType="Snap Trap"
}
};

var query = from CarnivorousPlant cPlant in plants
where cPlant.TrapType == "Snap Trap"
select cPlant;

foreach(var q in query)
{
Console.WriteLine("Name={0},Trap Type={1}", q.Name, q.TrapType);
}


Console.WriteLine(" Press any key to continue");
Console.ReadLine();
}
}

class Plant
{
public string Name { get; set; }
}

class CarnivorousPlant:Plant
{
public string TrapType { get; set; }
}

class Program
{
static void Main(string[] args)
{
Pet[] cats = GetCats();
Pet[] dogs = GetDogs();

IEnumerable<string> query = cats.Select(cat => cat.Name).Concat(dogs.Select(dog => dog.Name));
foreach(var e in query)
{
Console.WriteLine("Name={0}", e);
}

Console.WriteLine(" Press any key to continue");
Console.ReadLine();
}

static Pet[] GetCats()
{
Pet[] cats = {new Pet { Name="Barley",Age=8},
new Pet{Name="Boots",Age=4},
new Pet{Name="Whiskers",Age=1}};
return cats;
}

static Pet[] GetDogs()
{
Pet[] dogs =
{
new Pet{Name="Bounder",Age=3},
new Pet{Name="Snoopy",Age=14},
new Pet{Name="Fido",Age=9}
};

return dogs;
}
}

class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}

原文地址:https://www.cnblogs.com/Fred1987/p/6363857.html