我有一个区域列表,其中包含以下列:
Zone_id, ZoneName, BuildingName, CityName, RegionName
现在我正在将列表转换为字符串,如下所示:
var result = string.Join(", ", lstOfZones.Select(z => z.RegionName + "->" + z.CityName + "->" + z.BuildingName + "->" + z.ZoneName).ToArray());
它的输出是这样的:
North->New york->Wall Street->JbA,
North->New york->Wall Street->JbB,
South->Chicago->Aqua->HcA,
South->Chicago->Aqua->HcB
但我想要这样的输出:
North->New york->Wall Street->(JbA,JbB),
South->Chicago->Aqua->(HcA,HcB)
请帮忙?
最佳答案
你必须这样做。
var result = string.Join(", ",
lstOfZones.GroupBy(z =>
string.Format("{0}->{1}->{2}->",
z.RegionName, z.CityName, z.BuildingName))
.Select(z => string.Format("{0}({1})",
z.Key, string.Join(", ", z.Select(x => x.ZoneName).ToArray())))
.ToArray());
首先按地址对您的项目进行分组。这会给你 IGrouping<string,string>
.第一个是键及其地址,第二个是按该地址分组的项目列表。
关于c# - 如何通过分组将 <Entities> 列表转换为一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33236224/