using System.Collections.Generic;
public static void Main()
StringBuilder results = new StringBuilder();
List<DBValue> dbValues = new List<DBValue>();
dbValues.Add(new DBValue() {Descriptor = "box1", Coords = new int[]{7,9,14,32}, ExpectedValue = "fail text box1"});
dbValues.Add(new DBValue() {Descriptor = "box2", Coords = new int[]{7,9,14,32}, ExpectedValue = "your text box2"});
List<BoxName> boxes = new List<BoxName>();
foreach(var dbvalue in dbValues)
boxes.Add(new BoxName(dbvalue.Coords, dbvalue.Descriptor));
foreach(var box in boxes)
var boxData = dbValues.Where(x => x.Descriptor == box.BoxDescriptor).FirstOrDefault();
if (boxData.ExpectedValue != box.ActualValue)
results.AppendFormat("Descriptor {0} failed.\r\nExpectedValue: {1} - ActualValue: {2}\r\n{3}\r\n", boxData.Descriptor, boxData.ExpectedValue, box.ActualValue, new String('-', 20));
results.AppendFormat("Descriptor {0} was success.\r\nExpectedValue: {1} - ActualValue: {2}\r\n{3}\r\n", boxData.Descriptor, boxData.ExpectedValue, box.ActualValue, new String('-', 20));
Console.WriteLine(results);
public string Descriptor { get; set; }
public int[] Coords { get; set; }
public string ExpectedValue { get; set; }
private string boxDescriptor = "";
private string actualValue = "";
public BoxName(int iux, int iuy, int iw, int ih, string sBoxDescriptor)
boxDescriptor = sBoxDescriptor;
actualValue = extractText();
public BoxName(int[] iCoords, string sBoxDescriptor)
boxDescriptor = sBoxDescriptor;
actualValue = extractText();
public string BoxDescriptor { get { return boxDescriptor;} }
public string CoordsString
get{ return ux + "," + uy + "," + w + "," + h; }
get { return new int[]{ ux, uy, w, h }; }
public string ActualValue
get { return actualValue; }
private string extractText()
int[] textArea = CoordsInt;
return "your text " + BoxDescriptor;