C# 使用linq从列表中对象的属性值构建字符串

C# 使用linq从列表中对象的属性值构建字符串,c#,vb.net,linq,C#,Vb.net,Linq,我有一个员工列表,我想构建一个字符串,用逗号分隔所有员工的姓氏。 样本数据: Emp1.LastName = "A" Emp2.LastName = "B" Emp3.LastName = "C" Dim listing As List(Of Employee) dim flatted as string 最后我想得到 flatted = "A,B,C" 关键是我想用linq vb或c来做这件事,这是用c来做的。我用的是一个稍微不同的类人,而不是雇员,但代码最终是一样的 // Make

我有一个员工列表,我想构建一个字符串,用逗号分隔所有员工的姓氏。 样本数据:

Emp1.LastName = "A"
Emp2.LastName = "B"
Emp3.LastName = "C"

Dim listing As List(Of Employee)
dim flatted as string
最后我想得到

 flatted = "A,B,C"

关键是我想用linq vb或c来做这件事,这是用c来做的。我用的是一个稍微不同的类人,而不是雇员,但代码最终是一样的

// Make some experimental data...  
List<Person> peeps = new List<Person>()
{
    new Person() { FirstName = "Frank", LastName = "Jax" },
    new Person() { FirstName = "Anne", LastName = "Wax" },
};

// This will select all of the last names from the list of people, and join them with commas.
string lastNames = string.Join(",", (from x in peeps select x.LastName));

类似于以下的方法应该可以工作:

List<Person> people = new List<Person>();
        people.Add(new Person() { LastName = "A" });
        people.Add(new Person() { LastName = "B" });
        people.Add(new Person() { LastName = "C" });

        var lastNames = (from person in people
                         select person.LastName);

        var result = string.Join(",", lastNames);
        Console.WriteLine(result);
List<Person> people = new List<Person>();
        people.Add(new Person() { LastName = "A" });
        people.Add(new Person() { LastName = "B" });
        people.Add(new Person() { LastName = "C" });

        var lastNames = (from person in people
                         select person.LastName);

        var result = string.Join(",", lastNames);
        Console.WriteLine(result);