using System.Collections.Generic;
static List<Sample> Samples;
static bool AddReplicatesAfterOriginalSample = true;
public static void Main()
Samples = new List<Sample>();
if (AddReplicatesAfterOriginalSample)
Console.WriteLine("Cup - Sample - Rep - Dilution");
Samples.ForEach(sample => Console.WriteLine(string.Format("{0:D2} - {1} - {2} - {3}", sample.CupNumber, sample.SampleCode, sample.Rep, sample.Dilution)));
private static void BuildRun()
Samples.Add(new Sample() { SampleCode = "QC-2719518-001", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "QC-2719518-002", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "PR2100000001", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "QC-2719518-004", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "PR2100000002", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "PR2100000003", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "PR2100000004", Rep = 1 });
Samples.Add(new Sample() { SampleCode = "PR2100000005", Rep = 1 });
private static void AddReplicates()
Samples.Add(new Sample() { SampleCode = "PR2100000001", Rep = 2, Dilution = "10" });
Samples.Add(new Sample() { SampleCode = "QC-2719518-004", Rep = 2, Dilution = "10" });
Samples.Add(new Sample() { SampleCode = "PR2100000001", Rep = 3, Dilution = "100" });
Samples.Add(new Sample() { SampleCode = "QC-2719518-004", Rep = 3, Dilution = "100" });
private static void GenerateNewCupNumbers()
foreach (var sample in Samples)
var sampleWithReplicates = Samples
.Where(s => s.SampleCode == sample.SampleCode)
.Where(s => !s.CupNumbered)
foreach (var item in sampleWithReplicates)
Samples = Samples.OrderBy(x => x.CupNumber).ToList();
public string SampleCode { get; set; }
public int CupNumber { get; set; }
public int Rep { get; set; }
public string Dilution { get; set; }
public bool CupNumbered { get; set; }