尝试从 dt 中选择不同的行,并将结果放回相同的 dt。我认为这可以在一个声明中完成。这是我正在尝试的:
dt = (DataTable)((from row in dt.AsEnumerable() select row.Field<string>("VNDR_ID")).Distinct().ToList());
我怎样才能做到这一点?谢谢。
LINQ 语句
(from row in dt.AsEnumerable() select row.Field<string>("VNDR_ID")).Distinct()
返回IEnumerable<string>
not DataTable
,因此强制转换将失败。
您是否有理由需要将结果放入另一个中DataTable
?我只是使用IEnumerable
查询返回的值,或者如果您希望立即评估查询,则将其转换为List<string>
with ToList()
(以便您可以更改 的内容dt
)
您不能将其转换为 DataTable。Linq 最终会IEnumerable<string>
根据您的选择输出一个。为了将其加载到 DataTable 中,您必须:
dtSuplr = (from suplr in dtSuplr.AsEnumerable()
select suplr).Distinct().CopyToDataTable();