繁体   English   中英

如何在特定属性上加入通用的对象列表

[英]How to join a generic list of objects on a specific property

 class Person
 {
 public string FirstName { get; set; }
 public string LastName { get; set; }
 }

 List<Person> theList = populate it with a list of Person objects

如何获取一个字符串,其中包含以逗号分隔的列表中对象的所有FirstName。 例如:约翰,彼得,杰克

一个基本的解决方案是迭代每个对象,但我确信有一个单行解决方案。

谢谢。

更新(从.NET 4开始) string.Join现在有一个重载,它接受一个IEnumerable<string> - yay!

string.Join(",", theList.Select(p => p.FirstName));

对于4.0以下的 .NET版本(较旧版本)

string.Join(",", theList.ConvertAll(person => person.FirstName).ToArray());

将其分解为组成部分:

List<T>.ConvertAll一个转换List<T>到另一种类型的-在这种情况下, List<string>

ToArray()List<string>转换为string[]

string.Join()将一个字符串数组(第二个参数)作为单个字符串写入,由第一个参数分隔。

您还可以使用查询扩展方法

string output = theList.Select(p => p.FirstName).Aggregate((progress, next) => progress + ", " + next);

这将避免必须创建一个数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM