LINQ:根据列值选择重复行

2024-05-06

我试图在我的 DataGrid 中显示那些共享相同列值的行。

例如,对于具有相同姓氏的人,我尝试了以下方法:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => grp.Key);

这看起来很有效,因为我的 WPF DataGrid 在该命令之后包含行...最终它只显示空行,因为没有列填充值。

或者我对具有相同城市的人尝试过此操作:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.City).Where(grp => grp.Count() > 1).Select(grp => grp.Key).Select(a => a);

有什么正确的方法可以做到这一点吗?


您只选择示例中的键:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => **grp.Key**);

我假设您想要做的是选择整行:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).SelectMany(grp => grp.Select(r=>r));

要比较名字和姓氏:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => new Tuple<String, String>(a.ForeName, a.SurName)).Where(grp => grp.Count() > 1).SelectMany(grp => grp.Select(r=>r));

编辑:对于 L2E,你可以(我认为)使用匿名类型:

dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => new { a.ForeName, a.SurName }).Where(grp => grp.Count() > 1).SelectMany(grp => grp.Select(r=>r));

以上可能是不正确的 - 不是 100% 确定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ:根据列值选择重复行 的相关文章

随机推荐