Korero – Rev 1

Subversion Repositories:
Rev:
using System.Collections.Generic;
using System.Linq;

namespace Korero.Serialization
{
    public static class Extensions
    {
        #region Public Methods

        ///////////////////////////////////////////////////////////////////////////
        //    Copyright (C) 2015 Wizardry and Steamworks - License: GNU GPLv3    //
        ///////////////////////////////////////////////////////////////////////////

        /// <summary>
        ///     Converts successive comma-separated values to key-value pairs.
        /// </summary>
        /// <returns>key-value pairs of successive comma-separate values</returns>
        public static IEnumerable<KeyValuePair<string, string>> ToKeyValue(this CSV csv)
        {
            foreach (var kvp in csv.Select((o, p) => new {o, p})
                .GroupBy(q => q.p / 2, q => q.o))
            {
                var kv = kvp.ToArray();

                if (kv.Length != 2)
                {
                    break;
                }

                var k = kv[0];

                if (string.IsNullOrEmpty(k))
                {
                    continue;
                }

                var v = kv[1];

                yield return new KeyValuePair<string, string>(k, v);
            }
        }

        #endregion
    }
}

Generated by GNU Enscript 1.6.5.90.