C# 合并对象内部的字典
C# Merging dictionaries inside of an object
我知道有很多关于这个主题的 post,但我仍然没有找到我正在寻找的答案。
我得到两个对象 A 和 B,它们都有一个字典和一组布尔值。字典的形状相同,只是数据不同。我的最终目标是创建第三个对象 C,A 的副本,其字典根据一组规则更新为具有来自 A 和 B 的值(例如 C.dictionary 将拥有所有 A.dictionary.[ x] 如果 A.Dictionary.[x].Value.days < 5 和所有 B.dictionary.[x] 如果天 > 5)。
如果您对此有解决方案那就太棒了,否则,这就是我所处的位置和我失败的地方:
我正在尝试创建一个新字典并循环遍历 A 和 B 以添加值...我将在之后添加规则。一旦我得到它,我将找到一种方法将这个字典放入对象 C。(告诉我是否设计过度,我对 C# 很陌生)。
var dict = new Dictionary<DateTime, TypeData>();
foreach (var item in A.dictionary.keys)
{
dict.Add(A.Dictionary[item]);
}
这不起作用有两个原因:
- item 确实代表 A.dictionary[x].key 而不是 A.dictionary[x](还包含值和非 public 成员)
- “添加”带有下划线并且不显示错误的更多信息
非常感谢您查看我的 post!
试试这个
var dictionariesToCombine = new Dictionary<DateTime, TypeData>[] {dictA,dictB};
Dictionary<int, int> dictC = new Dictionary<DateTime, TypeData>();
for (var i=0; i< dictionariesToCombine.Length; i++)
{
foreach (var item in dictionariesToCombine[i])
{
if(
(i==0 and your conditions)
|| (i==1 and your conditions)
)
resultDict.Add(item.Key, item.Value);
}
}
我知道有很多关于这个主题的 post,但我仍然没有找到我正在寻找的答案。
我得到两个对象 A 和 B,它们都有一个字典和一组布尔值。字典的形状相同,只是数据不同。我的最终目标是创建第三个对象 C,A 的副本,其字典根据一组规则更新为具有来自 A 和 B 的值(例如 C.dictionary 将拥有所有 A.dictionary.[ x] 如果 A.Dictionary.[x].Value.days < 5 和所有 B.dictionary.[x] 如果天 > 5)。 如果您对此有解决方案那就太棒了,否则,这就是我所处的位置和我失败的地方:
我正在尝试创建一个新字典并循环遍历 A 和 B 以添加值...我将在之后添加规则。一旦我得到它,我将找到一种方法将这个字典放入对象 C。(告诉我是否设计过度,我对 C# 很陌生)。
var dict = new Dictionary<DateTime, TypeData>();
foreach (var item in A.dictionary.keys)
{
dict.Add(A.Dictionary[item]);
}
这不起作用有两个原因:
- item 确实代表 A.dictionary[x].key 而不是 A.dictionary[x](还包含值和非 public 成员)
- “添加”带有下划线并且不显示错误的更多信息
非常感谢您查看我的 post!
试试这个
var dictionariesToCombine = new Dictionary<DateTime, TypeData>[] {dictA,dictB};
Dictionary<int, int> dictC = new Dictionary<DateTime, TypeData>();
for (var i=0; i< dictionariesToCombine.Length; i++)
{
foreach (var item in dictionariesToCombine[i])
{
if(
(i==0 and your conditions)
|| (i==1 and your conditions)
)
resultDict.Add(item.Key, item.Value);
}
}