/// <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)); }
/// <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; } } }
/// <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); }