Dot Net Developer
Open in Telegram
Join DotNet Dev Insights for the latest tips, tutorials, and best practices on .NET Core, ASP.NET, C#, and software development. Perfect for developers looking to enhance their skills and stay updated with the .NET ecosystem.
Show more3 135
Subscribers
No data24 hours
-97 days
-5330 days
Posts Archive
3 135
Here are the key differences between an array and an ArrayList in C#:
1. Size
Array: Fixed size. Once you define the size of an array, it cannot change.
ArrayList: Dynamic size. You can add or remove elements, and the size will automatically adjust.
2. Type Safety
Array: Type-safe. All elements must be of the same type (e.g., int[], string[]).
ArrayList: Not type-safe. It stores elements as object, meaning it can hold different types, but this can lead to runtime errors and requires type casting when retrieving elements.
3. Performance
Array: More efficient, as it doesn’t involve boxing/unboxing of value types, and it is better suited for scenarios with a known number of elements.
ArrayList: Slightly slower compared to arrays because it stores elements as objects, so value types need to be boxed/unboxed.
4. Generics
Array: Arrays do not use generics.
ArrayList: Non-generic. For type safety and better performance, List<T> (a generic alternative) is recommended over ArrayList.
5. When to Use
Array: When you know the exact number of elements in advance and they all have the same type.
ArrayList: When you need a dynamically resizable collection, though List<T> is preferred.
Example:
Array:
int[] numbers = new int[5]; // Fixed size
numbers[0] = 1;
numbers[1] = 2;
ArrayList:
ArrayList arrayList = new ArrayList(); // Dynamic size
arrayList.Add(1);
arrayList.Add("Hello");
int firstItem = (int)arrayList[0]; // Requires casting
3 135
🚀Understanding
yield in .NET
💡The yield keyword in C# is used within an iterator block to provide a value to the enumerator object or to signal the end of the iteration. It allows you to implement custom iteration over collections in a clean, readable, and efficient way without the need for explicit state management.
✅ How yield Works
When the yield return statement is used, the method doesn't return the control immediately but pauses its execution and returns the specified value. The state of the method is preserved, so the next time the iterator is called, execution resumes right after the yield return statement.
Similarly, the yield break statement is used to end the iteration early, stopping further execution of the iterator.
✅Key Points
✔️Iterator Blocks: Methods, properties, or accessors using yield must have the return type IEnumerable, IEnumerable<T>, IEnumerator, or IEnumerator<T>.
✔️State Management: The compiler automatically handles state management, which simplifies the code compared to traditional iterator implementations.
✔️Lazy Evaluation: Using yield results in lazy evaluation, meaning that the values are produced on-demand when the iterator is iterated over.
➡️Example
Let's look at an example where we use yield to generate a sequence of numbers:
public static IEnumerable<int> GetNumbers(int max)
{
for (int i = 0; i <= max; i++)
{
yield return i; // Pauses here and returns each number one at a time
}
}
➡️Using the method:
foreach (var number in GetNumbers(5))
{
Console.WriteLine(number); // Outputs: 0 1 2 3 4 5
}
✅Benefits of Using yield
✔️Simplicity: Writing custom iterators becomes simpler without the need for managing state explicitly.
✔️Memory Efficiency: Only one item is in memory at a time due to lazy evaluation, making it efficient for large datasets.
✔️Readability: Code is easier to read and understand compared to implementing the full IEnumerable or IEnumerator interface manually.
✅Use Cases
✔️Filtering Data: Use yield to filter data on the fly without generating intermediate collections.
✔️Infinite Sequences: Create sequences that don't have a predetermined end, such as generating numbers infinitely until a condition is met.
✔️Deferred Execution: Avoid computation until the values are needed by the consumer, which is useful in scenarios like LINQ queries.
✅Limitations
✔️No Parameter Passing: yield does not allow passing parameters between yield return statements.
✔️Local Scope: Only local variables and method parameters can be used in an iterator block with yield.
✅ Conclusion
The yield keyword in .NET is a powerful feature for creating simple and efficient iterators with minimal code. It allows developers to produce values one at a time, maintaining the state automatically and facilitating lazy evaluation, which can greatly improve the performance and readability of code when working with sequences of data.
#webapi #softwaredevelopment #softwareengineering
#api #dotnetcore #apidevelopment #enum #yield3 135
What is C#?
C# is a modern, general-purpose, object-oriented programming language developed by Microsoft. C# is designed for Common Language Infrastructure (CLI), which consists of the executable code and runtime environment that allows use of various high-level languages on different computer platforms and architectures.
3 135
#dotnet #programming #csharp #developer #coding #javascript #java #programmer #webdeveloper #python #softwaredeveloper #dotnetdeveloper #dotnetcore #php #code #webdevelopment #backenddeveloper #fullstackdeveloper #software #angular #reactjs #sql #microsoft #vuejs #developerlife #daysofcode #html #dotnetdevelopment #frontenddeveloper #wordpress
3 135
#dotnet #programming #csharp #developer #coding #javascript #java #programmer #webdeveloper #python #softwaredeveloper #dotnetdeveloper #dotnetcore #php #code #webdevelopment #backenddeveloper #fullstackdeveloper #software #angular #reactjs #sql #microsoft #vuejs #developerlife #daysofcode #html #dotnetdevelopment #frontenddeveloper #wordpress
3 135
Hi! I'm sharing an exclusive invite to CRED with you.
Claim your membership now and make any bill payment to earn up to *₹250* in assured cashback using my link: https://cred.onelink.me/spQx?pid=af_app_invites&af_referrer_customer_id=05d68792-0449-4815-a256-2f01e5e84d9e&af_referrer_name=Hemant&af_og_description=upto+%E2%82%B9250+off+when+you+pay+your+first+bill+on+CRED&cred_referral_code=Z2KXWMK&deep_link_value=cred%3A%2F%2Fapp%2Flaunch&af_og_title=get+rewards+for+paying+bills&cred_referral_screen=referalv5&af_referrer_uid=1691429472515-3242433834760398452&cred_referral_name=Hemant&af_dp=cred%3A%2F%2Fapp%2Flaunch%2F&c=Z2KXWMK&cred_referral_campaign_id=7c9e062c-8cfe-4ea7-9518-bf90a5ef607a&media_source=af_app_invites&utm_campaign=referralV5&af_og_image=https%3A%2F%2Fd704ayip06922.cloudfront.net%2Fprod-rewards-assets-data%2F4b4c0670666f11ed86b1edf770c0fcd5.jpg&cred_referral_experiment=default_data&af_siteid=com.dreamplug.androidapp&af_sub1=Z2KXWMK&cred_referral_created_platform=android&cred_referral_source=referalv5&cred_enable_linking=true&linking_override_required=true&cred_referral_created_on=2024-02-07T19%3A51%3A11&is_retargeting=true&utm_source=referralV5
3 135
3 135
3 135
Plz WhatsApp Channel Follow Now👇
📍 Update New Status Daily 📍
https://whatsapp.com/channel/0029Va9JNnBHQbRv1014O61R
3 135
Plz WhatsApp Channel Follow Now👇
📍 Update New Status Daily 📍
https://whatsapp.com/channel/0029Va9JNnBHQbRv1014O61R
3 135
Plz WhatsApp Channel Follow Now👇
📍 Update New Status Daily 📍
https://whatsapp.com/channel/0029Va9JNnBHQbRv1014O61R
3 135
Plz WhatsApp Channel Follow Now👇
📍 Update New Status Daily 📍
https://whatsapp.com/channel/0029Va9JNnBHQbRv1014O61R
3 135
Plz WhatsApp Channel Follow Now👇
📍 Update New Status Daily 📍
https://whatsapp.com/channel/0029Va9JNnBHQbRv1014O61R
