C# 从C中的DataTable中获取Distinct列和其他列值#
我有一个数据表,其中有4列。Col1,Col2,Col3,Col4。 我想过滤DataTable,使其仅采用不同的Col1值C# 从C中的DataTable中获取Distinct列和其他列值#,c#,wpf,datatable,C#,Wpf,Datatable,我有一个数据表,其中有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
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 listview。您需要按
Col1
分组,然后取每组的第一行。最简单的方法是使用Linq访问数据集:
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();
var查询=
来自MyDataSet.Tables[0]中的行。AsEnumerable()
按行将字段(“Col1”)分组为g
选择g.First();
listview.ItemsSource=query.AsDataView();
(将int
替换为Col1
的实际数据类型)@user2017793,有: