DEV Community

mohamed Tayel
mohamed Tayel

Posted on

Batching Iteration: A User-Friendly Way to Display Data

When working with large datasets, displaying everything at once can overwhelm users and create a poor user experience. Instead, batching the display allows users to view a manageable portion of the data at a time, giving them the option to load more when ready.

In this article, we’ll explore the concept of batching in iteration and implement it with an interactive example using a Product Inventory system.


Why Batching?

Batching improves usability by:

  • Avoiding information overload.
  • Providing control over how much data is displayed at once.
  • Optimizing performance, especially with large datasets.

A for loop is particularly suited for this task because it gives us precise control over the iteration process, unlike a foreach loop, which processes the entire collection in one go.


Scenario: Product Inventory

Imagine we have a list of products in an inventory system, and we want to display a few products at a time. After showing a batch, the user decides whether to see more or stop.


Implementation

Here’s how we can implement batching with a Product Inventory example in C#.

Step 1: Define the Product Class

public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public override string ToString() { return $"{Id}. {Name} - ${Price:F2}"; } } 
Enter fullscreen mode Exit fullscreen mode

Step 2: Create a List of Products

using System; using System.Collections.Generic; class Program { static void Main() { // Sample product list var products = new List<Product> { new Product { Id = 1, Name = "Laptop", Price = 999.99M }, new Product { Id = 2, Name = "Smartphone", Price = 799.99M }, new Product { Id = 3, Name = "Tablet", Price = 499.99M }, new Product { Id = 4, Name = "Headphones", Price = 199.99M }, new Product { Id = 5, Name = "Smartwatch", Price = 249.99M }, new Product { Id = 6, Name = "Camera", Price = 599.99M }, new Product { Id = 7, Name = "Printer", Price = 149.99M }, new Product { Id = 8, Name = "Monitor", Price = 299.99M }, new Product { Id = 9, Name = "Keyboard", Price = 49.99M }, new Product { Id = 10, Name = "Mouse", Price = 29.99M } }; 
Enter fullscreen mode Exit fullscreen mode

Step 3: Implement Batching Logic

 // Ask user for batch size Console.Write("How many products would you like to display at a time? "); int batchSize = int.Parse(Console.ReadLine() ?? "3"); // Display products in batches for (int i = 0; i < products.Count; i++) { Console.WriteLine(products[i]); // Check if it's the end of a batch if ((i + 1) % batchSize == 0 && i < products.Count - 1) { Console.Write("Press Enter to see more, or type 'stop' to quit: "); string input = Console.ReadLine(); if (!string.IsNullOrEmpty(input)) break; // Exit if user types anything } } Console.WriteLine("End of product list."); } } 
Enter fullscreen mode Exit fullscreen mode

Explanation of the Code

  1. Batch Size Input: The user specifies how many items they want to see at a time (batchSize).
  2. Iteration Control: A for loop iterates through the products.
  3. Batch Check: (i + 1) % batchSize == 0 ensures the user is prompted after displaying batchSize products.
  4. User Interaction:
    • If the user presses Enter, the loop continues to the next batch.
    • If the user types anything else, the loop breaks, and the program exits.

Sample Output

Input: Batch size = 3

1. Laptop - $999.99 2. Smartphone - $799.99 3. Tablet - $499.99 Press Enter to see more, or type 'stop' to quit: 
Enter fullscreen mode Exit fullscreen mode

(User presses Enter)

4. Headphones - $199.99 5. Smartwatch - $249.99 6. Camera - $599.99 Press Enter to see more, or type 'stop' to quit: stop End of product list. 
Enter fullscreen mode Exit fullscreen mode

Benefits of Batching

  1. Improved User Experience: Users interact with the data at their own pace.
  2. Scalability: Handles large datasets effectively.
  3. Flexibility: Easily customizable for different use cases, like search results or paginated APIs.

Assignments

  1. Easy: Modify the code to display product names only (omit prices).
  2. Medium: Allow the user to go back to the previous batch.
  3. Difficult: Implement a search feature that filters products by name before displaying them in batches.

Conclusion

Batching in iteration is a simple yet powerful technique to manage large datasets effectively. By using a for loop and adding user interaction, you can provide a much friendlier and more responsive experience.

Top comments (0)