عملگرهای ElementAt و ElementAtOrDefault
عملگرهای ElementAt و ElementAtOrDefault در زبان کوئری نویسی LINQ به منظور انتخاب یک عنصر خاص از یک مجموعه استفاده می شوند. در جدول زیر می توانید این نوع عملگرها را به همراه توضیح مختصر مشاهده کنید.
عملگر | توضیحات |
ElementAt | عنصری که در اندیس مشخص شده قرار دارد را باز میگرداند. |
ElementAtOrDefault | عنصری که در اندیس مشخص شده قرار دارد را باز میگرداند. اگر اندیس مشخص شده نامعتبر باشد، مقدار پیشفرض مربوط به نوع داده مجموعه را باز می گرداند. |
First | اولین عنصر مجموعه و یا اولین عنصری که شرط مشخص شده را برآورده کند را باز میگرداند. |
FirstOrDefault | اولین عنصر مجموعه و یا اولین عنصری که شرط مشخص شده را برآورده کند را باز میگرداند. اگر عنصری را پیدا نکند، مقدار پیشفرض را باز می گرداند. |
Last | آخرین عنصر مجموعه و یا آخرین عنصری که شرط مشخص شده را برآورده کند را باز میگرداند. |
LastOrDefault | آخرین عنصر مجموعه و یا آخرین عنصری که شرط مشخص شده را برآورده کند را باز میگرداند. اگر عنصری را پیدا نکند، مقدار پیشفرض را باز می گرداند. |
Single | اگر مجموعه فقط یک عنصر داشته باشد، آن را باز میگرداند و اگر مجموعه بیش از یک عنصر داشته باشد، عنصری که شرط مشخص شده را برآورده کند، باز میگرداند. |
SingleOrDefault | مشابه متد فوق است فقط در صورتی که شرایط گفته شده برآورده نشود، مقدار پیشفرض باز میگرداند. |
متدهایی که OrDefault ندارند در صورتی که موفق نشوند عنصر مورد نظر را پیدا کنند، Exception ایجاد می کنند. اما آنهایی که OrDefault دارند، در صورت موفق نشدن مقدار پیشفرض نوع داده مجموعه را باز میگردانند. برای مثال مقدار پیشفرض برای نوع داده int مقدار 0 است. برای مشاهده مقادیر پیشفرض به لینک زیر مراجعه کنید:
مقادیر پیشفرض نوع داده های سی شارپ
برای درک بهتر نحوه عملکرد عملگر ElementAt به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | IList<int> intList = new List<int>() { 10, 21, 30, 45, 50, 87 }; IList<string> strList = new List<string>() { "One", "Two", null, "Four", "Five" }; Console.WriteLine("1st Element in intList: {0}", intList.ElementAt(0)); Console.WriteLine("1st Element in strList: {0}", strList.ElementAt(0)); Console.WriteLine("2nd Element in intList: {0}", intList.ElementAt(1)); Console.WriteLine("2nd Element in strList: {0}", strList.ElementAt(1)); Console.WriteLine("3rd Element in intList: {0}", intList.ElementAtOrDefault(2)); Console.WriteLine("3rd Element in strList: {0}", strList.ElementAtOrDefault(2)); Console.WriteLine("10th Element in intList: {0} - default int value", intList.ElementAtOrDefault(9)); Console.WriteLine("10th Element in strList: {0} - default string value (null)", strList.ElementAtOrDefault(9)); Console.WriteLine("intList.ElementAt(9) throws an exception: Index out of range"); Console.WriteLine("-------------------------------------------------------------"); Console.WriteLine(intList.ElementAt(9)); |
خروجی مثال:
1 2 3 4 5 6 7 8 9 10 11 | 1st Element in intList: 10 1st Element in strList: One 2nd Element in intList: 21 2nd Element in strList: Two 3rd Element in intList: 30 3rd Element in strList: Three 10th Element in intList: 0 - default int value 10th Element in strList: - default string value (null) intList.ElementAt(9) throws an exception: Index out of range ------------------------------------------------------------- Run-time exception: Index was out of range.... |
هیچ نظری ثبت نشده است