コード例 #1
0
ファイル: NormalCollector.cs プロジェクト: abuq/Collection
        /// <summary>
        ///     按照 KEYNAMES 重命名 result,并删除不存在的key
        /// </summary>
        /// <param name="resut">The resut.</param>
        /// <param name="keyNames">The key names.</param>
        private static void UpdateResultKeyName(IDic resut, IDictionary <string, string> keyNames)
        {
            var keys       = resut.KeysToArray();
            var removeList = new List <string>();

            foreach (var key in keys)
            {
                string newKey;

                if (keyNames.TryGetValue(key, out newKey))
                {
                    if (StringExtension.IsNullOrWhiteSpace(newKey))
                    {
                        // 未定义的key认为是一致的。
                        newKey = key;
                    }

                    if (StringExtension.Same(newKey, key, true))
                    {
                        // 如果新旧key一致,直接跳过
                        continue;
                    }

                    resut[newKey] = resut[key];
                }

                removeList.Add(key);
            }

            removeList.ForEach(key => resut.Remove(key));
        }
コード例 #2
0
ファイル: Dic.cs プロジェクト: abuq/Collection
 /// <summary>
 ///     从指定的对象中复制值
 /// </summary>
 /// <param name="dic">The parameter.</param>
 /// <param name="overwrite">if set to <c>true</c> [overwrite].</param>
 public void CopyFrom(IDic dic, bool overwrite = true)
 {
     foreach (var item in dic)
     {
         if (overwrite)
         {
             this[item.Key] = item.Value;
         }
         else if (!this.ContainsKey(item.Key))
         {
             this[item.Key] = item.Value;
         }
     }
 }
コード例 #3
0
ファイル: Dic.cs プロジェクト: abuq/Collection
 /// <summary>
 ///     将值复制到指定的对象中
 /// </summary>
 /// <param name="dic">The dic.</param>
 /// <param name="overwrite">if set to <c>true</c> [overwrite].</param>
 public void CopyTo(IDic dic, bool overwrite = true)
 {
     dic.CopyFrom(this, overwrite);
 }