PDA

View Full Version : سوال: نوع های داده IEnumerable, IQueryable چیستند؟



YourWorldToday
شنبه 10 بهمن 1388, 11:10 صبح
با سلام خدمت دوستان گرامی
لطفا به تابع زیر دقت بفرماید



public IQueryable<Dinner> FindUpcomingDinners() {
return from dinner in db.Dinners
where dinner.EventDate > DateTime.Now
orderby dinner.EventDate
select dinner;
}


در این تابع نوع خروجی از IQueryable تعریف شده است
این IQueryable چه نوع داده هستش.

لطفا به تابع بعد هم توجه کنید


public IEnumerable<RuleViolation> GetRuleViolations() {
yield break;
}


نوع این تابع از IEnumerable تعریف شده است
نوع IEnumerable چه چیزی رو بر میگردونه

این هم کلاس RuleViolation



public class RuleViolation {
public string ErrorMessage { get; private set; }
public string PropertyName { get; private set; }
public RuleViolation(string errorMessage) {
ErrorMessage = errorMessage;
}
public RuleViolation(string errorMessage, string propertyName) {
ErrorMessage = errorMessage;
PropertyName = propertyName;
}
}


با تشکر

saleh92
شنبه 16 آذر 1392, 17:17 عصر
سلام این نوع داده ها اینترفیسهایی هستند (نه کلاس!) که با ظهور linq پدید اومدن و میتونند اطلاعاتی که از جداول پایگاه داده select یا انتخاب میکنیم در خود ذخیره کنن و همچین داده های از نوع list و array را میپذیرند و قابلیت حلقه زدن در انها برای استفاده از هریک از item های انها با استفاده از تابع foreach وجود داره،2 تا مثال ساده از هزکدوم در لینک زیر اومده امیدوارم که بدردتون بخوره.موفق باشید
http://www.dotnetperls.com/ienumerable

علی متقی پور
شنبه 16 آذر 1392, 21:14 عصر
با سلام

تفاوتشون بسیار فنیست و شاید توضیحش سخت باشه.
یکی از برتری های IQ بر IE اینه که در اولی همه فیلترها باهم لحاظ شده و سپس منبع داده بر روی رم قرار میگیره در حالیکه در دومی ایتدا تمام اطلاعات در حافظه وارد میشه و سپس ازشون گزارش گرفته میشه