gpt4 book ai didi

c# - 如何使用linq仅在一列上分组

转载 作者:行者123 更新时间:2023-11-30 22:09:28 25 4
gpt4 key购买 nike

感谢收看

我的数据

Easting          Northing         Street        Town        postcode
123454 887878 main yourTown gh6 0jh
098345 093978 main yourTown gh6 0jh
872982 873839 main yourTown gh6 0jh
849728 938393 south yourTown gh6 8uh
748494 817263 south yourTown gh6 8uh
989893 787878 high yourTown gh6 7mu
889955 992002 high yourTown gh6 7mu
882999 998339 high yourTown gh6 7mu

我的 linq 语句

return this._uow.Addresses
.Where(a => a.Street.Trim().ToUpper().Contains(street.Trim().ToUpper()))
.Select(a =>
new Street()
{
MapEast = a.MapEast,
MapNorth = a.MapNorth,
Details = a.Street + " " + a.Town + " " + a.PostCode
})
.AsEnumerable();

我只需要出现一次街道、城镇、邮政编码,然后是东距和北距,以配合那条记录。我不关心选择了哪条记录。这是用groupby完成的吗?我一直在用 groupby 解决这个问题,但无法弄清楚。希望你能帮忙

最佳答案

然后使用group by,以分组中的第一项为例

.GroupBy(m => new {m.Street, m.Town, m.PostCode)
.Select(g => g.First());//You will get first Address

或者在你的情况下

.Where(<yourWhereClause>)
.GroupBy(m => new {m.Street, m.Town, m.PostCode})
.Select(m => new Street {
MapEast = m.FirstOrDefault().MapEast,//"random" MapEast
MapNorth = m.FirstOrDefault().MapNorth,//"random" MapNorth
Details = a.Key.Street + " " + a.Key.Town + " " + a.Key.PostCode
});

关于c# - 如何使用linq仅在一列上分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com