PDA

View Full Version : دسترسی مستقیم به عناصر linq



mrali.jalali
چهارشنبه 27 اسفند 1393, 21:06 عصر
سلام

میشه در linq مثله datatable بصورت مستقیم به عنصری از داده ها دستری پیدا کرد. بدون استفاده از حلقه ها . مثلا
(ds.Tables[0].Rows[z].ItemArray.GetValue(0


امیدوارم منظورمو رسونده باشم

wolf_majid
پنج شنبه 28 اسفند 1393, 08:24 صبح
منظورتون رو نگرفتم
linq روی یک کالکشن حرکت میکنه که میتونی بصورت مستقیم به شی مورد نظر در کالکشن دسترسی داشته باشی
این هم یک مثال نچندان کاربردی
var a = new[] { 0, 1, 2, 3, 4, 5 };
var b = from i in a
let c = a[5]
select i+c;

mrali.jalali
پنج شنبه 28 اسفند 1393, 08:52 صبح
منظورتون رو نگرفتم
linq روی یک کالکشن حرکت میکنه که میتونی بصورت مستقیم به شی مورد نظر در کالکشن دسترسی داشته باشی
این هم یک مثال نچندان کاربردی
var a = new[] { 0, 1, 2, 3, 4, 5 };
var b = from i in a
let c = a[5]
select i+c;


ممنون همان بود که میخاستم.

SabaSabouhi
پنج شنبه 28 اسفند 1393, 08:56 صبح
سلام

میشه در linq مثله datatable بصورت مستقیم به عنصری از داده ها دستری پیدا کرد. بدون استفاده از حلقه ها . مثلا
(ds.Tables[0].Rows[z].ItemArray.GetValue(0


امیدوارم منظورمو رسونده باشم

سلام
قبل از این که جواب مثبت یا منفی بدم، باید توجه شما رو به این جلب کنم که در لینک دو تا
موجودیت وجود داره.
1. IQueryable که فقط یک query رو نگهداری می‌کنه و هیچ داده‌ای توش وجود نداره.
2. IEnumerable که query موجود در یک IQueryable رو اجرا کرده و نتیجه رو برگردونده.

به محض این که شما فرمان ToList رو اجرا کنی، IQueryable به IEnumerable تبدیل می‌شه و
اطلاعات تو یه لیست قرار می‌گیره. ( اگه هدف دریافت یه لیست باشه )
تو این حالت شما به اجزاء این لیست مثل هر لیست دیگه دسترسی داری. می‌تونی جستجو
کنی، می‌تونی با اندیس بری سراغش و یا هر کار دیگه. و حتا خیلی راحت‌تر از اون مثلای که زدی


var queryable = MyContext.Users.Where( x=> x.IsActive );
var list = queryable.ToList();
var secondItem = list.Count > 1
? list[1]
? null;
var myAccount = list.SingleOrDefault ( x=> x.Name == "صبا صبوحی" );
var lastItem = list.LastOrDefault();

در کل، خیلی به ندرت پیش میاد که تو LinQ نیازی به حلقه پیدا کنی که اگه هم لازم باشه
بجای حلقه از ForEach استفاده می‌کنیم.

صبا صبوحی