Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

लिंक सी # में लास्ट () और लास्टऑर्डफॉल्ट () के बीच क्या अंतर है?

Last () और LastOrDefault () दोनों एक मूल्य की अंतिम घटना को प्राप्त करेंगे। लेकिन Last() और LastOrDefault() के बीच बड़ा अंतर यह है कि Last() एक अपवाद फेंक देगा यदि आपूर्ति किए गए मानदंडों के लिए कोई परिणाम डेटा नहीं है जबकि LastOrDefault() कोई परिणाम डेटा नहीं होने पर डिफ़ॉल्ट मान (शून्य) वापस कर देगा।

अंतिम () का उपयोग करें जब हमें पता था कि अनुक्रम में कम से कम एक तत्व होगा। जब हम डेटा के बारे में सुनिश्चित न हों तो LastOrDefault() का उपयोग करें।

उदाहरण

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace ConsoleApp {
   public class Student {
      public int Id { get; set; }
      public string Name { get; set; }
   }
   class Program {
      static void Main() {
         var studentsList = new List<Student> {
            new Student {
               Id = 1,
               Name = "John"
            },
            new Student {
               Id = 2,
               Name = "Jack"
            },
            new Student {
               Id = 1,
               Name = "Jill"
            }
         };
         var lastOrDefaultStudent = studentsList.LastOrDefault(student => student.Id == 1);
         var lastStudent = studentsList.Last(student => student.Id == 1);
         Console.WriteLine($"LastOrDefault: {lastOrDefaultStudent.Id} {lastOrDefaultStudent.Name}");
         Console.WriteLine($"Last: {lastStudent.Id} {lastStudent.Name}");
         Console.ReadLine();
      }
   }
}

आउटपुट

उपरोक्त कोड का आउटपुट है

LastOrDefault: 1 Jill
Last: 1 Jill

उदाहरण

using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication {
   class Program {
      static void Main(string[] args) {
         try {
            var studentsList = new List<Student> {
               new Student {
                  Id = 1,
                  Name = "John"
               },
               new Student {
                  Id = 2,
                  Name = "Jack"
               }
            };
            var lastOrDefaultStudent = studentsList.LastOrDefault(student => student.Id == 3);
            var value = lastOrDefaultStudent == null ? "null" : "";
            Console.WriteLine($"LastOrDefault: {value}");
            var lastStudent = studentsList.Last(student => student.Id == 3);
         }
         catch (Exception ex) {
            Console.WriteLine($"Last Exception: {ex.Message}");
            Console.ReadLine();
         }
      }
   }
   public class Student {
      public int Id { get; set; }
      public string Name { get; set; }
   }
}

आउटपुट

उपरोक्त कोड का आउटपुट है

LastOrDefault: null
Last Exception: Sequence contains no matching element

यहां आईडी "3" छात्र सूची में मौजूद नहीं है। इसलिए LastOrDefault() शून्य मान लौटा रहा है जबकि Last() अपवाद फेंक रहा है।


  1. DirectX 11 और DirectX 12 में क्या अंतर है?

    DirectX, एपीआई या एप्लिकेशन प्रोग्रामिंग इंटरफेस का एक संग्रह है, जिसका उपयोग सॉफ्टवेयर द्वारा मल्टीमीडिया सामग्री को प्रस्तुत करने और ग्राफिकल हार्डवेयर के साथ संचार करने के लिए किया जाता है। DirectX का प्रमुख घटक API, Direct3D, सॉफ्टवेयर और ग्राफिक्स हार्डवेयर के बीच संचार को संभालता है। चूंकि सभी

  1. सी # में स्ट्रिंग और स्ट्रिंग के बीच क्या अंतर है?

    String System.String के लिए खड़ा है जबकि string System.String के लिए C# में एक उपनाम है - उदाहरण के लिए string str = "Welcome!"; यह आवश्यक नहीं है, लेकिन आम तौर पर जब आप कक्षाओं के साथ काम करते हैं तो स्ट्रिंग का उपयोग किया जाता है। string str = String.Format("Welcome! {0}!", u

  1. सी # में सूची और सरणी के बीच क्या अंतर है?

    एक सरणी एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत करती है, जबकि सूची एक सामान्य संग्रह है। सूची को परिभाषित करने के लिए - List<string7gt; myList = new List<string>(); सूची में तत्वों को सेट करने के लिए, आपको जोड़ें विधि का उपयोग करने की आवश्यकता है - myList