using System.Collections.Generic;
public static void Main (string[] args)
var list = new Dictionary<string,decimal> ();
list.Add ("1_VariablePayBasis", 1337);
list.Add ("1_DecisionAmount", 168);
list.Add ("3_BasePay", 5201314);
foreach (var kv in list) {
string[] strings = kv.Key.Split('_');
int pk = Convert.ToInt32(strings [0]);
string fieldName = strings [1];
Console.WriteLine ("{0} {1} - {2}", pk, fieldName, kv.Value);
foreach (var fv in list.Select(x => (FieldValue)x)) {
Console.WriteLine ("{0} {1} - {2}", fv.PrimaryKey, fv.FieldName, fv.Value);
foreach (FieldValue fv in list) {
Console.WriteLine ("{0} {1} - {2}", fv.PrimaryKey, fv.FieldName, fv.Value);
public int PrimaryKey { get; set; }
public string FieldName { get; set; }
public decimal Value { get; set; }
public static implicit operator FieldValue(KeyValuePair<string,decimal> kv)
string[] strings = kv.Key.Split('_');
int pk = Convert.ToInt32(strings [0]);
string fieldName = strings [1];
return new FieldValue { PrimaryKey = pk, FieldName = fieldName, Value = kv.Value };