using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class Program
public static void Main()
List<(string DataSetCode, int NumProcessed)> list
= new() { ("A", 0), ("B", 0), ("C", 0) };
Console.WriteLine($"Before: {String.Join(", ", list)}");
Console.WriteLine($"After1: {String.Join(", ", list)}");
Span<(string DataSetCode, int NumProcessed)> span = CollectionsMarshal
span[index].NumProcessed++;
Console.WriteLine($"After2: {String.Join(", ", list)}");
Span<(string DataSetCode, int NumProcessed)> span = CollectionsMarshal
Interlocked.Increment(ref span[index].NumProcessed);
Console.WriteLine($"After3: {String.Join(", ", list)}");