مشخصات مقاله
-
1215
-
0.0
-
3050
-
0
-
0
آموزش عملیات تبدیل نوع داده ای در Linq
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
عملیات تبدیل نوع داده ای (Conversion)
متدهای Conversion نوع داده ای اشیا ورودی را تغییر می دهند (نوع شی را به نوع دیگری تبدیل می کنند).
عملیات تبدیل شی در LINQ بسیار پرکابرد می باشد. به عنوان مثال می توان به موارد زیر اشاره کرد:
1. متد Enumerable.AsEnumerable<TSource>، نوع IEnumerable<T> را به یک نوع دیگر IEnumerable<T> تبدیل می کند.
2. متدهایEnumerable.ToArray<TSource>, Enumerable.ToDictionary<TSource, TKey>,Enumerable.ToList<TSource> را می توان برای اعمال اجرای بلادرنگ کوئری مورد استفاده قرار داد.
جدول زیر تمامی متدهایی که برای تبدیل نوع شی بکار می روند را همراه با شرح عملکرد فهرست کرده است. متدهایی که اسم آن ها با "AS" شروع می شوند نوع static شی را تغییر می دهند اما المان های آن را نمی شمارند. متدهایی که اسم آن ها با "To" شروع می شود، المان های مجموعه ی ورودی را برشمرده و سپس آن ها را داخل نوع مجموعه ی مربوطه می ریزد.
|
اسم متد |
شرح |
نحوه ی نگارش در زبانC# |
ساختار نگارشی در زبان VB |
اطلاعات بیشتر |
|
AsEnumerable |
خروجی از نوع IEnumerable<> > را برمی گرداند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.AsEnumerable |
|
AsQueryable |
یک IEnumerable از نوع جنریک را به صورت IQueryable از نوع جنریک برمی گرداند. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Queryable.AsQueryable |
|
Cast |
المان های تشکیل دهنده یک مجموعه را به نوع مشخص شده تبدیل می کند. |
استفاده از یک متغیر با نوع مشخص مانند این نمونه: from string str in words |
From …As … |
Enumerable.Cast Queryable.Cast |
|
OfType |
المان های یک مجموعه را با توجه به قابلیت و امکان تبدیل آن ها به نوع مشخص، فیلتر می کند (با بهره گیری از این عملگر می توان المان هایی که دارای نوع مشخص هستند را از مجموعه واکشی کنیم). |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.OfType Queryable.OfType |
|
ToArray |
همان طور که از اسم آن پیدا است، یک مجموعه را صریحا به آرایه تبدیل می کند. این متد بلافاصله پس از فراخوانی، سبب اجرای بلادرنگ کوئری می شود. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.ToArray |
|
ToDictionary |
نوع مجموعه ی ورودی را به Dictionary تبدیل می کند. این متد سبب اجرای بلادرنگ کوئری می شود. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.ToDictionary |
|
ToList |
مجموعه را به لیست List |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.ToList |
|
ToLookup |
مجموعه یا لیست ورودی را به نوع Lookup تبدیل می کند (المان های لیست را در یک دیکشنری یک به چند قرار می دهد). سبب اجرای بلادرنگ کوئری می شود. |
پشتیبانی نمی شود. |
پشتیبانی نمی شود. |
Enumerable.ToLookup |
مثال
کد زیر از یک متغیر با نوع مشخص برای تبدیل نوع استفاده می کند، سپس به عضو نوع جدید دسترسی پیدا می کند.
class Plant
{
public string Name { get;set;}
}
class CarnivorousPlant : Plant
{
public string TrapType { get;set;}
}
static void Cast()
{
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 = "Flypaper Trap" },
new CarnivorousPlant { Name = "Waterwheel Plant", TrapType = "Snap Trap" }
};
var query = from CarnivorousPlant cPlant in plants
where cPlant.TrapType == "Snap Trap"
select cPlant;
foreach (Plant plant in query)
Console.WriteLine(plant.Name);
/* This code produces the following output:
Venus Fly Trap
Waterwheel Plant
*/
}