コード例 #1
0
        public static Dictionary <TKey, TValue> FromFudgeMsg <TKey, TValue>(IFudgeFieldContainer ffc, Func <IFudgeField, TKey> keyFactory, Func <IFudgeField, TValue> valueFactory)
        {
            ArgumentChecker.NotNull(keyFactory, "keyFactory");
            ArgumentChecker.NotNull(valueFactory, "valueFactory");
            if (ffc == null)
            {
                return(new Dictionary <TKey, TValue>());
            }

            if (ffc.Any(f => f.Ordinal.GetValueOrDefault(0) > 2))
            {
                throw new ArgumentException();
            }

            var entries = ffc.GetAllByOrdinal(1).Zip(ffc.GetAllByOrdinal(2), Tuple.Create);

            return(entries.ToDictionary(t => keyFactory(t.Item1), t => valueFactory(t.Item2)));
        }