using System.Collections.Generic;
public static void Main()
var SourceMatches = new List<string> { "tData.", "PCBC" };
List<TranRec> Transaction = new List<TranRec>();
var TempTranRec1 = new TranRec();
var TempTranRec2 = new TranRec();
var TempTranRec3 = new TranRec();
var TempTranRec4 = new TranRec();
var TempTranRec5 = new TranRec();
TempTranRec1.Source = "tData.TARPCBC01";
TempTranRec1.LotReference = "BZ000012";
Transaction.Add(TempTranRec1);
TempTranRec2.Source = "tData.TARPCBC02";
TempTranRec2.LotReference = "QR000018";
Transaction.Add(TempTranRec2);
TempTranRec3.Source = "tData.BELPCBC01";
TempTranRec3.LotReference = "BT000018";
Transaction.Add(TempTranRec3);
TempTranRec4.Source = "tData.BELPCBC02";
TempTranRec4.LotReference = "01-01-123456";
Transaction.Add(TempTranRec4);
TempTranRec5.Source = "tData.SVRPC0111";
TempTranRec5.LotReference = "HT000018";
Transaction.Add(TempTranRec5);
var ProdLots = (from rec in Transaction
rec.LotReference.ToLower().Substring(0, 1).CompareTo("a") >= 0
rec.LotReference.ToLower().Substring(0, 1).CompareTo("z") <= 0
SourceMatches.All(sm => rec.Source.ToLower().Contains(sm.ToLower()))
rec.Source, rec.LotReference
foreach (var PL in ProdLots)
Console.WriteLine("Source: {0:G}\nLotReference: {1:G}\n", PL.Source, PL.LotReference);
public string Source { get; set; }
public string LotReference { get; set; }