c# - 如何使用linq删除重复记录?

标签 c# linq c#-4.0

我有列表列表,想从列表中删除重复项。 数据以列表格式存储,比如 IEnumerable<IEnumerable<string>> tableData 如果我们将其视为表值, 父列表用于行,子列表是每列的值。 现在我想删除所有重复的行。从下表值 A 是重复的。

List<List<string>> ls = new List<List<string>>();
ls.Add(new List<string>() { "1", "A" });
ls.Add(new List<string>() { "2", "B" });
ls.Add(new List<string>() { "3", "C" });
ls.Add(new List<string>() { "4", "A" });
ls.Add(new List<string>() { "5", "A" });
ls.Add(new List<string>() { "6", "D" });
IEnumerable<IEnumerable<string>> tableData = ls;

var abc = tableData.SelectMany(p => p).Distinct();   ///not work

运行后,我希望abc应该是tableData格式

ls.Add(new List<string>() { "1", "A" });
ls.Add(new List<string>() { "2", "B" });
ls.Add(new List<string>() { "3", "C" });   
ls.Add(new List<string>() { "6", "D" });

最佳答案

tableData.GroupBy(q => q.Skip(1).First()).Select(q => q.First())

关于c# - 如何使用linq删除重复记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24012469/

相关文章:

c# - 静态变量是否在所有实例之间共享?

c# - 关于 Microsoft.CodeAnalysis.NetAnalyzers 和 FxCop 分析器的问题

c# - 为什么我不能用 linq 迭代可以用 foreach 迭代的东西?

json - Bitly、Json 和 C#

c# - 将图像保存到文件中,在 WPF 应用程序中保持纵横比

c# - 有没有一种简单的方法来附加 lambda 并重用 lambda 名称以创建我的 Linq where 条件?

c# - 自定义集合属性未序列化

c# - DELETE/PUT 动词导致 404 Not Found in WebAPI,仅当在本地运行时

c# - 使用 C# .net 以编程方式安装/卸载 .inf 驱动程序

sql-server - 为什么我的 Linqued 查询没有给出正确的结果?