【问题标题】:How to use Select in dynamic list?如何在动态列表中使用 Select?
【发布时间】:2022-01-27 02:58:51
【问题描述】:

我的动态列表中有动态模型。 attributes.blabla 存在于 我所有的模型。

        dynamic reqList= new List<dynamic>();
        
        //filled this list

        List<string> blablaList = reqList.Select(x => x.attributes.blabla).ToList();

I am taking this error

如何将 attributes.blabla 作为字符串列表?

【问题讨论】:

    标签: c# list linq select dynamic


    【解决方案1】:

    主要的一点是reqList 在您的代码中不是 IEnumerable。只需将签名更改为动态列表即可。

    List<dynamic> reqList= new List<dynamic>();
    reqList.Add(new{ attributes = new{blabla = "qq"}});
    
    List<string> blablaList = reqList.Select(x => x.attributes.blabla as string).ToList();
    

    【讨论】:

      【解决方案2】:

      您需要将dynamic reqList= new List&lt;dynamic&gt;(); 更改为List&lt;dynamic&gt; reqList= new List&lt;dynamic&gt;();dynamic 对象中,方法绑定是在运行时完成的,而不是在编译时完成的。您必须像这样投射列表项:

      List<string> blablaList = reqList.Select(x => x.attributes.blabla).Cast<string>().ToList();
      

      更多关于dynamic - https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/using-type-dynamic

      【讨论】:

      • 错误依旧,因为reqList在作者的示例中不是IEnumerable,所以对于动态类型的Select方法无法推断委托类型
      猜你喜欢
      • 2014-03-07
      • 2010-10-14
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      相关资源
      最近更新 更多