【问题标题】:Create a single item List<string> from a List<object> [duplicate]从 List<object> 创建单个项目 List<string> [重复]
【发布时间】:2017-10-10 14:37:45
【问题描述】:

假设我有一个看起来像这样的对象:

private class Group
{
    public int id { get; set; }
    public string name { get; set; }
    public int memberCount { get; set; }
}

然后我有一个名为groupsList&lt;Group&gt;。但是,现在我需要的只是所有名字的列表。

List<string> names = group.???

所以,为了清楚起见,如果 groups 看起来像这样:

id    name        memberCount
-----------------------------
1,   "Math Club",    24
2,   "Chess Club",   12
3,   "Drama Club",   19

那么我想要的是一个看起来像这样的列表:

"Math Club"
"Chess Club"
"Drama Club"

【问题讨论】:

  • groups.Select(g => g.name)
  • 供将来参考object 是一个所有其他类都继承自的类,因此您实际上可以拥有一个List&lt;object&gt;,它与List&lt;SomeOtherClass&gt; 并不完全相同

标签: c# linq


【解决方案1】:

使用 LINQ 和Select 方法:

var Names = groups.Select(c => c.name).ToList();

【讨论】:

    【解决方案2】:

    只需使用 LINQ:

    List<string> names = groups.Select(x => x.name).ToList();
    

    这将Select()所有名称,并通过ToList()将其转换为List&lt;string&gt;

    【讨论】:

      【解决方案3】:

      非 Linq 答案

      List<string> names = new List<string>();
      foreach(var group in groups)
      {
          names.Add(group.name);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        • 1970-01-01
        • 2016-09-28
        • 2014-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多