2010-08-20 79 views
1

我在单个表格数据集内有一个单独的柱状数据表。LINQ/VB.NET选择与数据集不同

我只是想将此数据集转换为不同的行。这是我的代码,它给编译错误'。'。预期。我究竟做错了什么? (我尝试添加。,仍然是相同的错误)。我知道这是愚蠢的明显。 PLZ救救我! ;)

非常感谢!

Dim query = _ 
    From email In ds.Tables(0) _ 
    Select email.Field<string>("Email").Distinct() 

编辑:DOH!在这里混合VB/C#语法!我改为(字符串),它的工作原理...但现在'查询'是一个可收集的字符...不是一个数据表...所以我怎么转换回来很容易,而无需手动做一个循环? Plz建议!

回答

5

您正在将Distinct方法应用于每个字符串,而不是查询的结果。由于字符串是字符的集合,因此您也可以将扩展方法应用于它们。周围的查询

认沽括号:

Dim query = _ 
    (From email In ds.Tables(0) _ 
    Select email.Field(Of String)("Email")).Distinct() 
+0

结果现在给我一个“ d_7a'1 [ System.String] ...当我尝试抛出列表或DataTable它抛出无效的演员异常...呃,我不妨停止浪费我的时间,只是做旧的字典独特的路线......! – dferraro 2010-08-23 19:41:29

+0

..但我不会放弃,所以请告诉我我在做什么,显然是错的!谢谢! – dferraro 2010-08-23 19:43:06

+0

hmm ...我将函数的返回结果更改为query.ToList(),并将其正确地转换为列表(字符串)。仍然不是我想要的数据表,但将工作足够好... – dferraro 2010-08-23 19:49:50

4

您可以通过获取的值到datatabale后使用不同的值:

dtFiltered = dtNotFiltered.DefaultView.ToTable(True, "RAMI_ISSA") 'Get distinct values (by stting the first parameter to True)