首页 > 解决方案 > 将一个类的多个属性聚合成一个字符串

问题描述

class Employee {
  string Name { get; set;}
  string Title { get; set;}
}

由此我想构造一个字符串,其中包含每个员工的姓名和头衔。使用 for 循环很容易,但如果可能的话,我想使用 LINQ Aggregate 方法。

就像是:

char delim = ',';

string theList = employees.Aggregate((x, y) => $"[{x.Title}] {x.Name}" + delim + y);

我正在努力解决的是如何构建它。

有没有办法做到这一点,或者我应该回到 foreach 循环?

标签: c#linq

解决方案


你在找String.Join吗?

string theList = string.Join(",", employees.Select(x => $"[{x.Title}] {x.Name}"));

employee我们以所需的格式表示每个:

employees.Select(x => $"[{x.Title}] {x.Name}")

然后将Join所有这些表示形式转换为单个字符串,","用作分隔符。


推荐阅读