Tôi muốn so sánh nội dung của hai trường hợp Dictionary<string, string>
bất kể thứ tự của các mục mà chúng chứa. SequenceEquals
cũng so sánh thứ tự, vì vậy đầu tiên tôi đặt hàng từ điển theo khóa và sau đó gọi SequenceEquals
.So sánh 2 Từ điển <string, string> Instances
Có phương pháp nào tôi có thể sử dụng thay vì SequenceEquals
sẽ chỉ so sánh nội dung không?
Nếu không có, đây có phải là cách lý tưởng để thực hiện việc này không?
Dictionary<string, string> source = new Dictionary<string, string>();
Dictionary<string, string> target = new Dictionary<string, string>();
source["foo"] = "bar";
source["baz"] = "zed";
source["blah"] = null;
target["baz"] = "zed";
target["blah"] = null;
target["foo"] = "bar";
// sequenceEquals will be false
var sequenceEqual = source.SequenceEqual(target);
// contentsEqual will be true
var contentsEqual = source.OrderBy(x => x.Key).SequenceEqual(target.OrderBy(x => x.Key));
Câu hỏi có chứa lỗ hổng rất lớn. Không có thứ gì như một thứ tự trong đó các phần tử có trong từ điển. Theo định nghĩa, một từ điển giữ chìa khóa để đánh giá các cặp mà không có bất kỳ thứ tự ngầm định nào. – Zordid