gpt4 book ai didi

c# - List.Distinct()可以应用于List>的列表类型吗?

转载 作者:行者123 更新时间:2023-11-30 19:17:19 24 4
gpt4 key购买 nike

List<List<String>> ls = new List<List<String>>();

List<String> l1 = new List<String>();
l1.Add("Peter");
l1.Add("123");
ls.Add(l1);

List<String> l2 = new List<String>();
l2.Add("Peter");
l2.Add("123");
ls.Add(l2);

ls = ls.Distinct().ToList();

我假设 ls 中只有一个元素,但实际上还有 2 个元素。可能的原因是什么?

最佳答案

那是因为 List<T>没有EqualsGetHashCode已实现,因此正在执行标准引用比较。它返回 false,因为您有两个分开的列表。

你可以自己写IEqualityComparer<List<string>>实现并将其提供为 Distinct 方法参数。在比较器中,您可以使用 Enumerable.SequenceEqual ) 方法来检查列表是否具有相同的内容。

关于c# - List.Distinct()可以应用于List<List<String>>的列表类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202894/

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