gpt4 book ai didi

c# - 合并两个List 的最简单方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:25 24 4
gpt4 key购买 nike

我有两个List<Name>

public class Name
{
public string NameText {get;set;}
public Gender Gender { get; set; }
}

public class Gender
{
public decimal MaleFrequency { get; set; }
public decimal MaleCumulativeFrequency { get; set; }
public decimal FemaleCumulativeFrequency { get; set; }
public decimal FemaleFrequency { get; set; }
}


如果 NameText属性匹配,我想从女性 FemaleFrequency列表中获取 FemaleCumulativeFrequencyName,从男性 MaleFrequency列表中获取 MaleCumulativeFrequencyName值并创建一个 Name列表,其中所有四个属性均已填充。

使用.Net 3.5在C#中最简单的方法是什么?

最佳答案

您是否在合并列表时尝试对每个值求和?如果是这样,请尝试以下操作:

List<Name> list1 = new List<Name>();
List<Name> list2 = new List<Name>();

List<Name> result = list1.Union(list2).GroupBy(x => x.NameText).Select(x => new
Name
{
NameText = x.Key,
Gender = new Gender
{
FemaleCumulativeFrequency = x.Sum(y => y.Gender.FemaleCumulativeFrequency),
FemaleFrequency = x.Sum(y => y.Gender.FemaleFrequency),
MaleCumulativeFrequency = x.Sum(y => y.Gender.MaleCumulativeFrequency),
MaleFrequency = x.Sum(y => y.Gender.MaleFrequency)
}
}).ToList();


它的作用如下:


合并列表,创建一个包含两个列表内容的 IEnumerable<Name>
通过NameText属性对列表进行分组,因此,如果存在具有相同NameText的重复名称,它们将显示在同一组中。
选择一组新的Name对象,并汇总每个分组的Name的属性...如果更有意义,也可以使用Average。
通过调用“ ToList()”方法将整个查询转换为 List<Name>


编辑:或者,正如您在下面所说的,您只想合并两个列表...执行以下操作:

List<Name> allNames = femaleNames.Union(maleNames).ToList();

关于c# - 合并两个List <T>的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com