class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
List<Person> theList = populate it with a list of Person objects
Run Code Online (Sandbox Code Playgroud)
如何获取一个字符串,其中包含以逗号分隔的列表中对象的所有FirstName.例如:约翰,彼得,杰克
一个基本的解决方案是迭代每个对象,但我确信有一个单行解决方案.
谢谢.
Rex*_*x M 19
更新(从.NET 4开始)
string.Join现在有一个过载需要IEnumerable<string>- yay!
string.Join(",", theList.Select(p => p.FirstName));
Run Code Online (Sandbox Code Playgroud)
对于4.0以下的 .NET版本(较旧版本):
string.Join(",", theList.ConvertAll(person => person.FirstName).ToArray());
Run Code Online (Sandbox Code Playgroud)
将其分解为组成部分:
List<T>.ConvertAll将a转换List<T>为另一种类型 - 在本例中为a List<string>.
ToArray()转换List<string>为a string[].
string.Join() 将字符串数组(第二个参数)写为单个字符串,由第一个参数分隔.
您还可以使用查询扩展方法
string output = theList.Select(p => p.FirstName).Aggregate((progress, next) => progress + ", " + next);
Run Code Online (Sandbox Code Playgroud)
这将避免必须创建一个数组.