using System.Collections.Generic;
public static void Main()
Match match1 = new Match(){ FirstName="Test", LastName="Das", SeqNum="01", Sex="Male"};
Match match2 = new Match(){ FirstName="Test2", LastName="Das2", SeqNum="02", Sex="Male"};
Match match3 = new Match(){ FirstName="Test3", LastName="Das3", SeqNum="03", Sex="Male"};
List<Match> matches = new List<Match>(){match1, match2,match3};
List<Field> fields = new List<Field>(){ new Field(){ FieldName="FirstName", FieldValue="First Name", FieldGuid="111111" }, new Field(){ FieldName="LastName", FieldValue="Last Name", FieldGuid="222222" }, new Field(){ FieldName="SeqNum", FieldValue="Sequence Number", FieldGuid="333333" },new Field(){ FieldName="Sex", FieldValue="Sex", FieldGuid="444444" }} ;
string jsonString = JsonSerializer.Serialize(fields);
var tt = match1.ToDictionary();
string jsonString1 = JsonSerializer.Serialize(tt);
Console.WriteLine(jsonString1);
List<MatchResult> result = new List<MatchResult>();
foreach(var fld in fields)
MatchResult rslt = new MatchResult();
rslt.Field = fld.FieldName;
rslt.FieldGuid = fld.FieldGuid;
for(int i=0; i< matches.Count; i++)
var prop = rslt.GetType().GetProperty("Match"+(i+1).ToString()+"Values");
var val = GetPropValue(matches[i], fld.FieldName).ToString();
string js= JsonSerializer.Serialize(result);
public static object GetPropValue(object src, string propName)
return src.GetType().GetProperty(propName).GetValue(src, null);
public Dictionary<string, object> ToDictionary()
var dict = new Dictionary<string, object>();
foreach (var prop in GetType().GetProperties())
dict.Add(prop.Name, prop.GetValue(this));
public string FirstName { get;set; }
public string LastName { get;set; }
public string SeqNum { get;set; }
public string Sex { get;set; }
public Dictionary<string, object> ToDictionary()
var dict = new Dictionary<string, object>();
foreach (var prop in GetType().GetProperties())
dict.Add(prop.Name, prop.GetValue(this));
public string FieldName { get;set; }
public string FieldValue { get;set; }
public string FieldGuid { get;set; }
public string FieldGuid { get;set; }
public string Field { get;set; }
public string inComingValues { get;set; }
public string Match1Values { get;set; }
public string Match2Values { get;set; }
public string Match3Values { get;set; }
public string Match4Values { get;set; }
public string Match5Values { get;set; }