[英]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.