gpt4 book ai didi

c# - 在 C# 中比较两个字典的相等数据?

转载 作者:可可西里 更新时间:2023-11-01 03:12:45 28 4
gpt4 key购买 nike

我有两个字典,其中包含一个字符串键和一个对象。该对象包含五个字段。有没有一种优雅的方法来确保两个字典首先包含相同的键,然后如果这是正确的,则每个对象包含相同的五个字段?

这两个词典是否具有相同的内置哈希码或其他内容?

编辑,似乎不适用于以下代码:

Dictionary<string, MyClass> test1 = new Dictionary<string, MyClass>();
Dictionary<string, MyClass> test2 = new Dictionary<string, MyClass>();

MyClass i = new MyClass("", "", 1, 1, 1, 1);
MyClass j = new MyClass("", "", 1, 1, 1, 1);

test1.Add("1", i);
test2.Add("1", j);

bool equal = test1.OrderBy(r => r.Key).SequenceEqual(test2.OrderBy(r => r.Key));

class MyClass
{
private string a;
private string b;
private long? c;
private decimal d;
private decimal e;
private decimal f;

public MyClass(string aa, string bb, long? cc, decimal dd, decimal ee, decimal ff)
{
a= aa;
b= bb;
c= cc;
d= dd;
e= ee;
f= ff;
}

这会返回 false?

最佳答案

你可以使用

bool dictionariesEqual = 
dic1.Keys.Count == dic2.Keys.Count &&
dic1.Keys.All(k => dic2.ContainsKey(k) && object.Equals(dic2[k], dic1[k]));

关于c# - 在 C# 中比较两个字典的相等数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13470335/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com