تغییر خروجی یک دستور کوئری در لینک
بسم الله الرحمن الرحیم
آموزش select new در LINQ
در بسیاری از کوئری های LINQ ما نیاز خواهیم داشت، تا نتیجه ی کوئری را به کلاس دیگری Bind کنیم برای این کار مثالی را در این جا بررسی خواهیم کرد.
بر روی یک Table کوئریی را می خواهیم اجرا کنیم، در این کوئری فقط فیلدهای Id , Name را لازم خواهیم داشت، این دو فیلد را باید تبدیل به یک کلاس دیگر کنیم.
برای اینکار کد ما به صورت زیر خواهد بود:
<>
جستجو در LINQ
بسم الله الرحمن الرحیم
جستجو یک لیست در عناصر لیست دیگر
روش های زیادی برای انجام یک کار وجود دارد و در بسیاری از مواقع تمامی این روش ها شما را به مقصودتان می رساندد اما طبیعتا همه ی آنها روش درست نیستند. یکی از موارد زیادی که ممکن است برای شما نیز اتفاق بیافتد جستجو کردن یک لیست از اطلاعات درون یک لیست دیگر است طبیعتا اولین راه حل نوشتن یک حلقه (f
دستور Any
بسم الله الرحمن الرحیم
دستور Any
با استفاده از دستور Any شما می توانید وجود یک شی را در یک لیستی از اشیا بررسی کنید.
یک مثال ساده از این دستور به صورت زیر است
class Pet { public string Name { get; set; } public int Age { get; set; } public bool Vaccinated { get; set; } } public static void AnyEx3() { // Create an array of Pets. Pet[] pets = { new Pet { Name="Barley", Age=8, Vaccinated=true }, new Pet { Name="Boots", Age=4, Vaccinated=false }, new Pet { Name="Whiskers", Age=1, Vaccinated=false } }; // Determine whether any pets over age 1 are also unvaccinated. bool unvaccinated = pets.Any(p => p.Age > 1 && p.Vaccinated == false); Console.WriteLine( "There {0} unvaccinated animals over age one.", unvaccinated ? "are" : "are not any"); } // This code produces the following output: // // There are unvaccinated animals over age one.
تفاوت دستور Select با SelectMany در LINQ
بسم الله الرحمن الرحیم
تفاوت دستور Select با SelectMany در LINQ
می توانید مقاله آموزش Linq به زبان فارسی را از این قسمت مشاهده کنید.
دو عملگر Select و SelectMany عملگر های projection هستند. عملگر Select برای انتخاب مقادیر از یک مجموعه است اما عملگر SelectMany برای انتخاب مقادیر یک مجموعه از مجموعه دیگر است.
اپراتور یا عملگر Select یک مقدار را به عنوان خروجی به ش
اضافه کردن متد به LINQ
بسم الله الرحمن الرحیم
می خواهیم به تمامی لیست هایی که از نوع double ایجاد می شوند یک متد برای پیدا کردن عنصر میانی آنها بنویسیم
public static class LINQExtension
{
public static double Median(this IEnumerable<double> source)
{
if (source.Count() == 0)
{
throw new InvalidOperationException("Cannot compute median for an empty set.");
}
var sortedList = from number in source
orderby number
select number;
int itemIndex = (int)sortedList.Count() / 2;
if (sortedList.Count() % 2 == 0)
{
//
آموزش Linq (بخش هشتم)
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
بخش هشتم
LINQ
در این بخش تگ های تبدیل لینک را آموزش خواهم داد
مطالعه بیشترآموزش Linq (بخش هفتم)
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
بخش هفتم
LINQ
در این بخش تگ های اتصال لینک را آموزش خواهم داد
Join operators
join
برای متصل کردن دو شی یه یکدیگر از متد join استفاده می کنیم. مثال:
var query = from c in customers join o in orders on c.CustomerID equals o.CustomerID
select new {FullName = c.Name + " " +
c.Family ,
c.CustomerID ,
o.OrderDate ,
TotalOrder = o.Total
};
آموزش Linq (بخش ششم)
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
بخش ششم
LINQ
در این بخش تگ های انتخابی لینک را آموزش خواهم داد
Element opertators
ElementAt
عنصر واقع در یک اندیس مشخص شده در یک مجموعه را برمی گرداند.
var query = SampleList.ElementAt(4);
ElementAtOrDefault
عنصر واقع در یک اندیس مشخص در یک مجموعه را برمی گرداند و یا اگر اندیس خارج از دامنه باشد یک مقدار پیش فرض را برمی گرداند.
آموزش Linq (بخش پنجم)
بسم الله الرحمن الرحیم
مشاهده تمامی آموزش های دوره LINQ
آموزش LINQ
بخش پنجم
LINQ
در این بخش تگ های تولیدی لینک را آموزش خواهم داد
Generation Empty
Range
مجموعه ای را تولید می کند که حاوی دنباله ای از اعداد است مثال:
// Generate a sequence of integers from 1 to 10 // and then select their squares. IEnumerable squares = Enumerable.Range(1, 10).Select(x => x * x); foreach (int num in squares) Console.WriteLine(num); /* This code produces the following output: