Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从datatable中删除重复项并添加值vb.net_Vb.net - Fatal编程技术网

从datatable中删除重复项并添加值vb.net

从datatable中删除重复项并添加值vb.net,vb.net,Vb.net,我有一个datatable,有两列,名称列中有重复记录,要删除重复列,但不删除重复列的值,需要附加“,” 我希望输出为 Name Value Arun x,c,w Kumar j,k,m Jai a,b Balu a,c 试试这个 SELECT Name,Value + ',' + value FROM Table1 Group By Name,Value 您可以尝试以下方法(注释中说明了该方法的工作原理): 如果第一列中永远不会有重复的值,那么最好将该列定

我有一个datatable,有两列,名称列中有重复记录,要删除重复列,但不删除重复列的值,需要附加“,”

我希望输出为

Name    Value
Arun    x,c,w
Kumar   j,k,m
Jai     a,b
Balu    a,c
试试这个

SELECT Name,Value + ',' + value  
FROM Table1
Group By Name,Value
您可以尝试以下方法(注释中说明了该方法的工作原理):


如果第一列中永远不会有重复的值,那么最好将该列定义为主键。尝试通过编码将功能添加到数据库中,而实际上可以直接从数据库中获取该功能是一个很大的错误。您的datatable数据是否来自数据库??然后最好的方法是在SELECT语句中进行操作…使用SELECT DISTINCT。我从excel文件获取此记录,我从导入到excel DataGridViews我从excel文件获取此记录,我从导入到excel DataGridViews显示错误:类型为'system.collections.generic.list(字符串)的值'无法转换为一维数组。“nameGroup.Select(函数(x)x.Field(字符串)(“值”)).ToList()”您使用的.NET版本是什么?尝试使用
.ToArray()
更改
.ToList()
String.Join
在旧版本的.NET中只能接收数组,不能与List一起使用。使用framework 3.5,将toList()更改为ToArray()“无法将类型为'd_u7a`1[System.String]'的对象强制转换为类型为'System.String[]”。在
.Distinct()
之后添加
.ToArray()
。Distinct()返回列表,所以您也需要对其进行转换。除了使用LINQ,还有其他方法吗?
SELECT Name,Value + ',' + value  
FROM Table1
Group By Name,Value
Dim dt As New DataTable
'source DataTable has 2 columns : Name and Value
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Value", GetType(String))
'add 2 rows to source DataTable
dt.Rows.Add("Arun", "x,c")
dt.Rows.Add("Arun", "c,x,w")

'group rows by Name
'for each group join value by comma so "x,c" + "c,x,w" become "x,c,c,x,w"
'then split by comma and call distinct to remove duplicate chars. result: x|c|w
'join them again by comma. result: "x,c,w"
Dim query = (From row In dt
            Group row By name = row.Field(Of String)("Name") Into nameGroup = Group
            Select New With {
                .Name = name,
                .Value = String.Join(",", String.Join(",", nameGroup.Select(Function(x) x.Field(Of String)("Value")).ToList()).Split(",").Distinct())
                }
            ).ToList()

Dim dt2 As New DataTable
dt2.Columns.Add("Name", GetType(String))
dt2.Columns.Add("Value", GetType(String))
'add distinct data to result DataTable
For i As Integer = 0 To query.Count
    dt2.Rows.Add(query(i).Name, query(i).Value)
Next