如何将<Entities>的列表转换为一个包含分组的字符串?
我区的列表,它具有以下的列:如何将<Entities>的列表转换为一个包含分组的字符串?
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,
南 - >芝加哥 - > Aqua-> HCA,
南 - >芝加哥 - > Aqua->部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());
按地址先将您的项目分组。这会给你IGrouping<string,string>
。第一个是关键,其地址和第二个是该地址分组项目的列表。
回答:
你可以试试这个:
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();
在Aggregate
方法,第一个参数设置种子开始值String.Empty
。第二个参数定义连接当前种子值(string
)与当前元素的方法
以上是 如何将<Entities>的列表转换为一个包含分组的字符串? 的全部内容, 来源链接: utcz.com/qa/262672.html