c# - 如何通过分组将 <Entities> 列表转换为一个字符串?

标签 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());

它的输出是这样的:

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/

相关文章:

c# - 在 Winforms 中,如何覆盖 ComboBox 的 OnDropDown 方法?

c# - 扩展方法必须在非通用静态类中定义

c# - 在 ASP.NET MVC 中存储来自 3 DropDownListFor(日、月、年)的 DateTime

asp.net - JavaScript 事件和回调

asp.net - 没有 Windows 身份验证的 HttpContext.Current.User.Identity.Name

mysql - 为什么 EF 为简单查询生成子查询?

c# - SmtpClient 非常慢 - 发送一封非常小的电子邮件大约需要 2 秒

c# - 使用 Entity Framework 将字符串转换为 DateTime

c# - 远离存储库模式。我应该如何使用 DBContext?

javascript - c# 获取在javascript中选择的值datarow