我有以下课程:
public class Person
{
public string FirstName = string.Empty;
public string LastName = string.Empty;
}
和该类的列表:
List<Person> listOfPeople = new List<Person>();
如何在不使用foreach并循环遍历listOfPeople的列表中将FirstNames列入字符串或字符串列表变量? 我希望得到类似的东西:
string firstNames= "Bob, Jack, Bill";
答案 0 :(得分:3)
简单的Select
与string.Join
相结合,可以满足您的需求。
string firstNames = string.Join(", ", listOfPeople.Select(p=>p.FirstName));
根据您使用的.Net版本,您可能还需要在ToArray
之后添加Select
作为string.Join
的重载,需要IEnumerable<string>
直到.Net 4才会添加。
在旁注中,请考虑将公共字段转换为属性。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person()
{
FirstName = string.Empty;
LastName = string.Empty;
}
}
答案 1 :(得分:0)
您可以使用linq Aggregate函数来实现此目的
listOfPeople.Select(person => person.FirstName).Aggregate((i, j) => i + ", " + j);