我目前正在根据列表 SOURCEFIELDS 中对象的 NAME 的存在来对对象的 SIZE 属性的值求和(参见代码)。
string[] SourceFields = MergeParameters
.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
int OverallLength = MainFields
.FindAll(FO => SourceFields
.Any(List => FO.Name.Equals(List)))
.Sum(FO => FO.Size);
我的问题是,如果一个值在 SOURCEFIELDS 中出现两次(这是可能的),我需要将该值加倍(或者无论出现多少次)。
这可以通过 linq 查询实现吗?如果可能,我想避免嵌套循环。
最佳答案
您可以使用Join
扩展方法:
int OverallLength = MainFields.Join(SourceFields, x => x.Name, y => y,
(x, y) => x).Sum(x => x.Size);
顺便说一下,最好调用 SourceFields.Contains(FO.Name)
而不是 SourceFields.Any(List => FO.Name.Equals(List))
.
关于c# - 根据列表中的存在和数量求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46199772/