【问题标题】:C# How do I combine values in a list of name value pairs that have the same name? [duplicate]C#如何组合具有相同名称的名称值对列表中的值? [复制]
【发布时间】:2019-06-25 11:58:22
【问题描述】:

我有一个包含名称/值对的列表

类看起来像这样:

string Name { get; set; }
string Value { get; set; }

我需要做的是将所有具有相同名称的值连接到一个新列表中,其中类如下所示:

string Name { get; set; }
list<string> Values { get; set; }

【问题讨论】:

  • 你可能想看看这个:ToLookup().
  • var combined = nvpList.GroupBy(nvp =&gt; nvp.Name).Select(group =&gt; new NameValueClass {Name = group.Key, Values = group.SelectMany(nvp =&gt; nvp.Values).Distinct().ToList()});
  • 鲁弗斯,你拯救了这一天。这正是我想要的。谢谢!

标签: c# .net linq concatenation


【解决方案1】:

你可以使用LINQGroupBy方法:

var result = yourList.GroupBy(x => x.Name, x => x.Value, 
    (k, g) => new YouSecondClass { Name = key, Values = g.ToList() });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多