从 C# 中的 DataTable 中获取 Distinct Column 以及其他列值
Posted
技术标签:
【中文标题】从 C# 中的 DataTable 中获取 Distinct Column 以及其他列值【英文标题】:Taking Distinct Column along with other column values also from DataTable in C# 【发布时间】:2013-12-16 10:43:28 【问题描述】:我有一个数据表,其中有 4 个列。 Col1、Col2、Col3、Col4。 我想过滤 DataTable 以仅采用不同的 Col1 值。
DataView dv = MyDataSet.Tables[0].DefaultView;
listview.ItemsSource = dv.ToTable(true, new string[] "Col1" ).DefaultView;
当我这样做时,listview 只显示 Col1 值,但其他列不显示。
但我不能这样做,
dv.ToTable(true, new string[] "Col1", "Col2", "Col3", "Col4" ).DefaultView;
因为我不希望其他列有不同的值。更多的 Col1 数据是重复的。
有什么办法吗?我只想在 MyDataSet.Tables[0] 中进行过滤。不想创建另一个表来存储过滤器数据,因为我将它绑定到 WPF 列表视图。
【问题讨论】:
【参考方案1】:您需要按Col1
分组,然后取每个组的第一行。最简单的方法是使用 Linq to DataSets:
var query =
from row in MyDataSet.Tables[0].AsEnumerable()
group row by row.Field<int>("Col1") into g
select g.First();
listview.ItemsSource = query.AsDataView();
(将int
替换为Col1
的实际数据类型)
【讨论】:
@user2017793,是的,有:msdn.microsoft.com/EN-US/library/bb908061.aspx以上是关于从 C# 中的 DataTable 中获取 Distinct Column 以及其他列值的主要内容,如果未能解决你的问题,请参考以下文章
C#如何将datatable中的数据批量更新到MYSQL数据库