我有两个List<Name>s:
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; }
}
Run Code Online (Sandbox Code Playgroud)
如果NameText属性相匹配,我想取FemaleFrequency和FemaleCumulativeFrequency从女性的名单NameS和MaleFrequency和MaleCumulativeFrequency值从男性的名单NameS和创建一个列表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();
Run Code Online (Sandbox Code Playgroud)
这样做有以下几点:
IEnumerable<Name>包含两个列表内容的列表. List<Name>通过调用"ToList()"方法将整个查询转换为a . 编辑:或者,正如您在下面所说,您只想合并两个列表...执行此操作:
List<Name> allNames = femaleNames.Union(maleNames).ToList();
Run Code Online (Sandbox Code Playgroud)