【问题标题】:How to convert List<ClassModel> to List<string> easily如何轻松将 List<ClassModel> 转换为 List<string>
【发布时间】:2020-10-24 07:19:03
【问题描述】:

我有一个 ASP.NET Core 3.1 WebAPI,它包含一个名为 ImagePath 的类模型,该模型只有一个名为 filename 的属性,我的问题是如何将此类的列表转换或映射到字符串列表。 . 我的意思是它采用属性filename 并将其添加到字符串列表中,但不使用任何类型的循环(for、foreach、while..)

来自 API 的数据

"images": [
    {
        "filename": "6f2290d2-c26f-4132-b7dc-c70ca3bbadb5.jpg"
    },
    {
        "filename": "8057c245-d980-40b5-964e-5fda69684300.jpg"
    },
    {
        "filename": "a085f172-e711-4520-abab-1defc8e9dde8.jpg"
    },
    {
        "filename": "db5c2296-0679-4e02-9e34-674aaa578be8.jpg"
    }
],

我想要的是这个

"images": [
    "6f2290d2-c26f-4132-b7dc-c70ca3bbadb5.jpg",
    "8057c245-d980-40b5-964e-5fda69684300.jpg",
    "a085f172-e711-4520-abab-1defc8e9dde8.jpg",
    "db5c2296-0679-4e02-9e34-674aaa578be8.jpg"
],

有什么解决办法吗?

【问题讨论】:

  • “不使用任何类型的循环(for、foreach、while..)”为什么呢?如果要获取所有值,则必须查询所有值。这通常通过以某种方式迭代成员来完成。你能详细说明你想要达到的目标吗?无论如何,您可以使用 JSON 序列化程序,例如NewtonSoft,从 JSON 中获取数据并将数据写入 JSON。
  • var stringList = classList.Select(x =&gt; x.filename).ToList();。这仍然会遍历所有项目,但可能没有办法解决。
  • 没有“没有循环”这样的东西。 Linq 在后台运行循环。
  • @devNull 你知道这也会迭代集合吗?正如罗伯特已经指出的那样:“没有循环”是毫无意义的要求。
  • 为什么没有循环?这可以帮助我们更好地回答。

标签: c# json asp.net-core asp.net-web-api serialization


【解决方案1】:

listClassModel.Select(p => p.filename).ToList()

【讨论】:

    猜你喜欢
    • 2020-01-11
    • 2013-08-26
    • 2020-11-27
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多