C# 如何从集合中获取一个属性并将其分配给数组?

C# 如何从集合中获取一个属性并将其分配给数组?,c#,entity-framework,asp.net-core,entity-framework-core,asp.net-core-3.0,C#,Entity Framework,Asp.net Core,Entity Framework Core,Asp.net Core 3.0,我以为这会很容易,但我似乎无法让它发挥作用 我的实体框架项目中有一个名为_context.Galaxy的模型 它包含一系列不同的属性,但我只想检索名称并创建数据库中所有星系名称的字符串数组 这是我的密码: var allGalaxyNames = _context.Galaxy .Select(x => new { GalaxyName = x.Name.ToString() }).ToArray(); string[] AllGalax

我以为这会很容易,但我似乎无法让它发挥作用

我的实体框架项目中有一个名为_context.Galaxy的模型

它包含一系列不同的属性,但我只想检索名称并创建数据库中所有星系名称的字符串数组

这是我的密码:

var allGalaxyNames = _context.Galaxy
    .Select(x => new
    {
        GalaxyName = x.Name.ToString()
    }).ToArray();


    string[] AllGalaxys = allGalaxyNames
无论我做什么尝试,都会不断出现此错误:

 Cannot implicitly convert type '<anonymous type: string GalaxyName>[]' to 'string[]'
无法将类型“[]”隐式转换为“字符串[]”
我怎样才能让它工作


谢谢

您不需要匿名对象,只需从
选择返回字符串即可

string[] allGalaxyNames = _context.Galaxy
    .Select(x => x.Name.ToString())
    .ToArray();

Select
方法中,使用
GalaxyName
属性将结果投影到匿名类型,并使其成为数组,因此
allGalaxyNames
是匿名类对象的数组。然后尝试将其分配给
string[]AllGalaxys
,这会导致问题。要使其工作,只需编写
\u context.Galaxy.Select(x=>x.Name.ToString())”。