SeT*_*ToY 5 c# linq syntax entity-framework
我试图在我的DataGrid中显示那些共享相同列值的行.
例如,对于拥有相同姓氏的人,我试过这个:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => grp.Key);
Run Code Online (Sandbox Code Playgroud)
这似乎是有效的,因为我的WPF DataGrid在此命令之后包含行...最终它只显示空行,因为没有列填充值.
或者我和拥有相同城市的人员一起尝试过:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.City).Where(grp => grp.Count() > 1).Select(grp => grp.Key).Select(a => a);
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来做到这一点?
您只是在示例中选择了密钥:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).Select(grp => **grp.Key**);
Run Code Online (Sandbox Code Playgroud)
我假设你要做的是选择整行:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => a.SurName).Where(grp => grp.Count() > 1).SelectMany(grp => grp.Select(r=>r));
Run Code Online (Sandbox Code Playgroud)
比较名字和姓氏:
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));
Run Code Online (Sandbox Code Playgroud)
编辑:对于L2E,你可以(我认为)使用匿名类型:
dataGrid.ItemsSource = _dataContext.Addresses.GroupBy(a => new { a.ForeName, a.SurName }).Where(grp => grp.Count() > 1).SelectMany(grp => grp.Select(r=>r));
Run Code Online (Sandbox Code Playgroud)
以上可能是错误的 - 不是100%肯定.
| 归档时间: |
|
| 查看次数: |
4766 次 |
| 最近记录: |