【问题标题】:How can I interact with accented letters inside list<dynamic>? [duplicate]如何与 list<dynamic> 中的重音字母交互? [复制]
【发布时间】:2021-04-08 04:41:30
【问题描述】:

我被分配升级一个很久以前创建的 Web 应用程序。在那个项目中,数据库中的数据通过动态列表进行访问、修改和返回。表之间的某些项目的关系不是通过 Id 而是通过它们的标题相关的。它返回给我一个项目列表,其中列标题是由不幸包含重音字母的项目标题分配的。

退货示例

我无法访问这些类型的数据,因为重音字母要么被编码规则禁止,要么有一种方法,但我还不知道如何使用它。我试过下面的代码,用 [] 包围这些字母,但它不起作用。

var maBuonList = list.Select(x => x.["Ẩm_Bã bùn"]).ToList();

我也尝试过不带点的查询,但它返回另一个错误。

var maBuonList = list.Select(x => x["Ẩm_Bã bùn"]).ToList();

错误:

'Cannot apply indexing with [] to an expression of type 'System.Dynamic.ExpandoObject''

没有点的错误

【问题讨论】:

  • x["Ẩm_Bã bùn"] 怎么样?
  • 索引器的使用将是x["Ẩm_Bã bùn"],而不是x.["Ẩm_Bã bùn"]x 之后没有.)。
  • 我也试过了。让我用返回的错误更新我的问题。
  • 将其转换为字符串,动态事物在提取时需要显式类型list.Select(x =&gt; (string)x["Ẩm_Bã bùn"]).ToList();
  • 它返回给我同样的错误。

标签: c# linq asp.net-core


【解决方案1】:

如果你是从db获取列表,你可以使用Column,得到List&lt;SampleModel&gt;而不是List&lt;dynamic&gt;

public class SampleModel {
        public string Gio { get; set; }
        [Column("Ẩm_Bã bùn")]
        public double Ẩm_Bã_bùn { get; set; }


    }

【讨论】:

    猜你喜欢
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2017-09-05
    • 1970-01-01
    • 2014-06-15
    • 2014-08-13
    相关资源
    最近更新 更多