Azavea.Open.DAO.Memory.AbstractMemoryIndex.SplitObjectsByProperty C# (CSharp) Method

SplitObjectsByProperty() protected method

Splits a list of objects into a bunch of lists, one for each value of the index's property.
protected SplitObjectsByProperty ( IEnumerable objects ) : IList>.IDictionary
objects IEnumerable A list of potentially unordered objects.
return IList>.IDictionary
        protected IDictionary<object, IList<MemoryObject>> SplitObjectsByProperty(
            IEnumerable<MemoryObject> objects)
        {
            IDictionary<object, IList<MemoryObject>> retVal = new Dictionary<object, IList<MemoryObject>>();
            foreach (MemoryObject obj in objects)
            {
                object val = obj.ColValues[_property];
                IList<MemoryObject> listForVal;
                if (retVal.ContainsKey(val))
                {
                    listForVal = retVal[val];
                }
                else
                {
                    listForVal = new List<MemoryObject>();
                    retVal[val] = listForVal;
                }
                listForVal.Add(obj);
            }
            return retVal;
        }