آموزش Linq (بخش سوم)
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
بخش سوم
LINQ
در این بخش تگ های دسته بندی لینک را آموزش خواهم داد
Group By
در بعضی پرس و جو ها شما نیاز دارید که نتیجه را به صورت گروه بندی نمایش دهید برای گروه بندی باید به صورت زیر عمل کنید:
var queryCustomersByCity = from cust in customers group cust by cust.City;
یا
var query = from c in customers group c by c.Country into cc select new { Country = cc.Key };
فکر کنم نیازی به توضیح نیست با استفاده از متغییر دامنه ما تعیین می کنیم که بر اساس چه فیلدی گروه بندی شود در اینجا ما بر اساس شی مشتری که فیلد شهر را دارد گروه بندی می کنیم.
اگر بخواهیم به نتیجه گروه بندی دسترسی داشته باشیم باید از عبارتinto استفاده کنیم. مثال:
var custQuery = from cust in customers group cust by cust.City into custGroup where custGroup.Count() >2 orderby custGroup.Key select custGroup;
وقتی اطلاعات را دسته بندی می کنیم هر دسته از اطلاعات یک کلید (Key)دارد که بر اساس آن دسته بندی می شود مثال:
List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };
IEnumerable<IGrouping<int, int>> query = from number in numbers group number by number % 2;
foreach (var group in query)
{
Console.WriteLine(group.Key == 0 ? "\nEven numbers:" : "\nOdd numbers:");
foreach (int i in group)
Console.WriteLine(i);
}
/* This code produces the following output:
Odd numbers:
35
3987
199
329
Even numbers:
44
200
84
4
446
208
*/
Set operators
Distinct
عضوهای تکراری را حذف می کند مثال: a,b,c,d,c,e نتیجه: a,b,c,d,e
List<int> SampleList = new List<int>() { 1, 3, 2, 3, 1, 8, 13 };
var query = SampleList.Distinct();
foreach (var item in query)
Console.WriteLine(item);
Except
تفاضل مجموعه اول نسبت به مجموعه دوم مثال: a,b,c,e a,c,d,e => b
List<int> SampleList1 = new List<int>() { 1, 3, 2, 3, 1, 8, 13 };
List<int> SampleList2 = new List<int>() { 1, 5, 7, 3, 1, 6};
var query = SampleList1.Except(SampleList2);
foreach (var item in query)
Console.WriteLine(item);
//output
//2
//8
//13
Intersect
اشتراک دو مجموعه مثال: a,b,c,e a,c,d,e => a,c,e
List<int> SampleList1 = new List<int>() { 1, 3, 2, 3, 1, 8, 13 };
List<int> SampleList2 = new List<int>() { 1, 5, 7, 3, 1, 6};
var query = SampleList1.Intersect(SampleList2);
foreach (var item in query)
Console.WriteLine(item);
Union
تمام عناصر دو مجموعه بدون عضو تکراری مثال: a,b,c,e a,c,d,e => a,b,c,d,e
List<int> SampleList1 = new List<int>() { 1, 3, 2, 3, 1, 8, 13 };
List<int> SampleList2 = new List<int>() { 1, 5, 7, 3, 1, 6};
var query = SampleList1.Union(SampleList2);
foreach (var item in query)
Console.WriteLine(item);