C# 使用LinQ将一个数据表的重复行复制到另一个数据表
是否有任何方法可以将源数据表中的重复行(基于一列或多列)复制到目标数据表(使用或不使用C#中的LINQ)?编写您目前拥有的代码可以更容易地收集意图 如果使用LINQ,则需要使用group运算符,或者使用LINQ扩展和GroupBy()方法,尽管它会提供键列表 比如: 如果没有LINQ,只需使用C# 使用LinQ将一个数据表的重复行复制到另一个数据表,c#,.net,asp.net,linq,.net-4.0,C#,.net,Asp.net,Linq,.net 4.0,是否有任何方法可以将源数据表中的重复行(基于一列或多列)复制到目标数据表(使用或不使用C#中的LINQ)?编写您目前拥有的代码可以更容易地收集意图 如果使用LINQ,则需要使用group运算符,或者使用LINQ扩展和GroupBy()方法,尽管它会提供键列表 比如: 如果没有LINQ,只需使用HashSet作为内存,并做一个简单的检查,如果它在HashSet中,那么您以前见过它,然后只需添加到辅助表中,如果没有,那么将它添加到HashSet中,因为这是您第一次看到此元素。。即使是VB.NET,也
HashSet
作为内存,并做一个简单的检查,如果它在HashSet中,那么您以前见过它,然后只需添加到辅助表中,如果没有,那么将它添加到HashSet中,因为这是您第一次看到此元素。。即使是VB.NET,也可能会发现以下内容很有用:
Dim dups = From row In source
Group By grp = New With {Key .Value1 = CInt(row("Value1")), Key .Value2 = CInt(row("Value2"))}
Into Group Where Group.Count > 1
Let Text = Group.First.Item("Text")
Select Group.First
If dups.Any Then
Dim dest = dups.CopyToDataTable
End If
为了获得包含重复行的新数据表,将其他列添加到查询中时,Let
-关键字很重要。Hie
要使用LINQ查找重复记录,必须执行类似的操作
int[] listOfItems = new[] { 4, 2, 3, 1, 6, 4, 3 };
var duplicates = listOfItems
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
Console.WriteLine(d);
您应该解释您的问题,并描述到目前为止您拥有的代码。否则,唯一的答案是:是。@caspar我想要C#的源代码作为我的问题…供将来参考:要求别人从头开始为你编写代码,通常不会受到热烈的欢迎。
int[] listOfItems = new[] { 4, 2, 3, 1, 6, 4, 3 };
var duplicates = listOfItems
.GroupBy(i => i)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach (var d in duplicates)
Console.WriteLine(d);