多对多的名称解析,选择多个参与人员后的名称解析,字符串逗号存储分割后的多用户解析 电脑版发表于:2025/3/21 11:42 代码如下: ``` // 解析参与人员。多对多解析 // List<long> users = result.Select(a => long.Parse(a.UserIds)).Distinct().ToList(); // 先把所有涉及到的用户id查询出来 List<long> userIds = new List<long>(); foreach (CleanPoolDto item in result) { if (!string.IsNullOrWhiteSpace(item.UserIds)) { userIds.AddRange(item.UserIds.Split(',').Select(a => long.Parse(a)).ToList()); } } List<Users> usersList = db.Queryable<Users>().Where(a => userIds.Contains(a.Id)).ToList(); // 在到内存中去解析名称 foreach (var item in result) { if (!string.IsNullOrWhiteSpace(item.UserIds)) { foreach (var userIdStr in item.UserIds.Split(',')) { long userIdLong = long.Parse(userIdStr); Users? users = usersList.FirstOrDefault(a => a.Id == userIdLong); if (users != null) { item.UserNicknames += users.UserNickname + ","; } } if (!string.IsNullOrWhiteSpace(item.UserNicknames)) { item.UserNicknames = item.UserNicknames.TrimEnd(','); } } } ```