如何将逗号分隔邮箱字符串转为LINQ列表并获取对应个人信息?
逗号分隔邮箱字符串转LINQ可处理列表并批量获取用户信息
实现说明
原方法GetInfo的返回类型为单个PersonalInfo,但输入是多个邮箱,合理的返回类型应为List<PersonalInfo>,以下是调整后的实现逻辑:
完整代码实现
public class PersonalInfo { public string firstname {get; set;} public string lastname {get; set;} public string address {get; set;} public string phonenumber {get; set;} } // 假设你已实现该方法,用于根据单个邮箱从SQL获取信息 private PersonalInfo GetSingleInfoFromSql(string email) { // 此处为你已掌握的SQL查询逻辑,返回对应PersonalInfo对象 } public List<PersonalInfo> GetInfo(string EmailList) { // 1. 分割逗号分隔的字符串,清理每个邮箱的前后空格,过滤空值 var emailList = EmailList.Split(',') .Select(email => email.Trim()) .Where(email => !string.IsNullOrWhiteSpace(email)) .ToList(); // 2. 遍历每个邮箱,调用SQL查询方法获取信息并收集结果 var personalInfos = emailList.Select(email => GetSingleInfoFromSql(email)) // 可选:过滤掉未查询到结果的项 .Where(info => info != null) .ToList(); return personalInfos; }
关键逻辑说明
- 字符串处理:使用
Split(',')分割字符串,通过Trim()清理邮箱前后的空格,Where过滤掉分割后产生的空字符串(比如连续逗号或首尾逗号的情况) - LINQ遍历查询:利用
Select遍历每个邮箱,调用已有的SQL查询方法,再通过ToList()转换为可返回的列表 - 空值过滤:添加
Where(info => info != null)可以排除那些在SQL中未找到对应记录的项,避免返回空对象
内容的提问来源于stack exchange,提问作者Amanda Cortes
相关产品推荐
相关产品推荐

