如何使用.NET C# LINQ从Employee对象列表生成属性拼接字符串列表?
问题与解决方案
我有一个Employee对象列表,每个Employee实例包含Name和Address属性,需要用.NET C#的LINQ语句生成一个由Employee.Name + "_" + Employee.Address拼接而成的字符串列表。
修正后的代码示例
原代码中Name和Address属性被错误定义为int类型,无法赋值字符串,以下是修正后的正确代码:
public class Employee { public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } } List<Employee> emplist = new List<Employee> { new Employee { Id = 1, Name = "John Doe", Address = "Some Street 5" }, new Employee { Id = 2, Name = "Jack Daniels", Address = "Main Avenue 43" }, new Employee { Id = 3, Name = "Jane Murphy", Address = "BlahBlah 123" } };
LINQ实现方案
方法一:LINQ方法语法
通过Select投影操作,直接将每个Employee对象转换为目标拼接字符串:
var resultList = emplist.Select(e => $"{e.Name}_{e.Address}").ToList();
方法二:LINQ查询表达式
如果更习惯查询表达式的写法,可采用以下实现:
var resultList = (from e in emplist select $"{e.Name}_{e.Address}").ToList();
注意事项
- 上述代码使用C#字符串插值(
$""),与e.Name + "_" + e.Address功能一致,但可读性更强。 - 若
Name或Address可能为null,建议添加空值处理,避免生成null_xxx或xxx_null这类无效字符串,示例如下:var resultList = emplist.Select(e => $"{e.Name ?? string.Empty}_{e.Address ?? string.Empty}").ToList();
内容的提问来源于stack exchange,提问作者patsy2k
相关产品推荐
相关产品推荐

