C# 如何将列表转换为一个分组字符串?
我有一个区域列表,其中包含以下列:C# 如何将列表转换为一个分组字符串?,c#,asp.net,entity-framework,linq,list,C#,Asp.net,Entity Framework,Linq,List,我有一个区域列表,其中包含以下列: Zone_id, ZoneName, BuildingName, CityName, RegionName 现在,我将列表转换为字符串,如下所示: var result = string.Join(", ", lstOfZones.Select(z => z.RegionName + "->" + z.CityName + "->" + z.BuildingName + "->" + z.ZoneName).ToArray());
Zone_id, ZoneName, BuildingName, CityName, RegionName
现在,我将列表转换为字符串,如下所示:
var result = string.Join(", ", lstOfZones.Select(z => z.RegionName + "->" + z.CityName + "->" + z.BuildingName + "->" + z.ZoneName).ToArray());
其输出如下:
北->纽约->华尔街->JbA
北->纽约->华尔街->JbB
南部->芝加哥->水族->HcA
南->芝加哥->水族->HcB
但我想要这样的输出:
北->纽约->华尔街->JbA,JbB
南->芝加哥->水族->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());
首先按地址对项目进行分组。这将为您提供i分组。第一个是键及其地址,第二个是按地址分组的项目列表。您必须这样做
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());
首先按地址对项目进行分组。这将为您提供i分组。第一个是键及其地址,第二个是按地址分组的项目列表。您可以尝试以下方法:
var result lstOfZones.GroupBy(z => z.RegionName + "->" + z.CityName + "->" + z.BuildingName)
.Select(g=>g.Key+ "->("+ g.Agregate(String.Empty,(a,z)=>a + "," +z.ZoneName) +")")
.ToArray();
在聚合方法中,第一个参数将种子开始值设置为String.Empty。第二个参数定义将当前种子值字符串与当前元素连接起来的方法。您可以尝试以下操作:
var result lstOfZones.GroupBy(z => z.RegionName + "->" + z.CityName + "->" + z.BuildingName)
.Select(g=>g.Key+ "->("+ g.Agregate(String.Empty,(a,z)=>a + "," +z.ZoneName) +")")
.ToArray();
在聚合方法中,第一个参数将种子开始值设置为String.Empty。第二个参数定义了将当前种子值字符串和当前元素连接起来的方法,这非常快。恢复了对斯塔克的信任@元编码器-你可以接受它作为答案,如果这有助于你。检查这个-这是非常快的。恢复了对斯塔克的信任@元编码器-你可以接受它作为答案,如果这有助于你。检查这个-