c# - 如何将 Model.Tag(具有 ID 和名称)转换为 "List of"名称?

标签 c# asp.net asp.net-mvc linq

public List<string> TagNameList (int objectId)
{
    List<string> tagNameList = db.Tags.Where(ob => ob.Id == objectId).ToList();  
}

db.Tags.Where(ob => ob.Id == objectId).ToList(); 

我要进入 db Tags 中的上下文然后我选择所有具有一组 objectId 的标签通过导航属性,我通过 ObjectTags 进行了设置在两列中存储关系的表,它们都构成一个复合键。

示例返回 IQueryable<app.Models.Tag> .有什么快速的方法可以将其转换为 List<string>只有 Tag.Name

最佳答案

是的,您只需要使用Select 应用投影:

public List<string> TagNameList (int objectId)
{
    return db.Tags.Where(ob => ob.Id == objectId)
                  .Select(tag => tag.Name)
                  .ToList();  
}

编辑:好的,根据您的更新,如果您只想要每个集合中的第一个对象,则可以使用 First() - 如果您想要每个对象的名称在集合中,您可以使用 SelectMany:

public List<string> TagNameList (int objectId)
{
    return db.Tags.Where(ob => ob.Id == objectId)
                  .SelectMany(ob => ob.Tags)
                  .Select(tag => tag.Name)
                  .ToList();  
}

关于c# - 如何将 Model.Tag(具有 ID 和名称)转换为 "List of"名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123830/

相关文章:

c# - 用于 C# 奇数问题的 Pcap 库

c# - 如何模拟 ObservableCollection

c# - 避免 quartz 表失误

c# - 着眼于 future 的代码

asp.net-mvc - 返回带有前缀的 FormCollection 项目

c# - MVC,C# 将 parent.id 传递给子索引或创建操作?

c# - Linq List Any 无法处理泛型 List<List<T>> 的值命令

c# - AssemblyLoadContext 将无法卸载

asp.net - QueryString 不接受 & - 需要

asp.net - ViewState 在什么时候映射到 Page session ?