提问人:Deivydas 提问时间:10/20/2023 最后编辑:Svyatoslav DanylivDeivydas 更新时间:10/21/2023 访问量:40
尝试使用 LINQ 从列表中获取特定值并分配给新列表
Trying to get specific value from a list and assign to new list using LINQ
问:
我有一个由 ID 和 Value 组成的列表。我想获取该列表值并根据其 ID 分配给新列表。
这是我的存储清单:var storages = UnitOfWork.Select<Storage>();
第1个列表:
var smallZonesLoadedAmount = UnitOfWork.Select<LoadingDocumentObject>()
.Where(x => x.LoadedWeight > 0 && x.StorageId.HasValue)
.GroupBy(x => x.StorageId)
.Select(group => new {StorageId = group.Key, LoadedWeight = group.Sum(y => y.LoadedWeight) })
.ToList();
第二份名单:
var smallZoneInfo = storages.Where(/*x => x.ZoneId == 2 &&*/ x => !string.IsNullOrEmpty(x.Number))
.GroupBy(y => y.Number)
.Select(z => new ZoneInformationView
{
ZoneName = z.Key,
TotalCargo = smallZonesLoadedAmount.Where(x => z.Any(s => (int)s.Id == x.StorageId))
.Select(x => x.LoadedWeight)
.FirstOrDefault(),
ZonePermissibleUsage = 0,
CargoWithLongestStoringTimeInDays = 0,
AverageLoadingUnloadingInDays = 0,
}).ToList();
我希望根据存储 ID 和 .smallZonesLoadedAmount
smallZonesInfo
smallZonesLoadedAmount StorageID
答:
0赞
DebugCode
10/21/2023
#1
检查此代码,
var smallZoneInfo = storages.Where(x => !string.IsNullOrEmpty(x.Number))
.GroupBy(y => y.Number)
.Select(z => new ZoneInformationView
{
ZoneName = z.Key,
TotalCargo = smallZonesLoadedAmount
.Where(loaded => z.Any(storage => storage.Id == loaded.StorageId))
.Sum(loaded => loaded.LoadedWeight),
ZonePermissibleUsage = 0,
CargoWithLongestStoringTimeInDays = 0,
AverageLoadingUnloadingInDays = 0
})
.ToList();
这里的方法 和 用于根据匹配或 从 中筛选和关联值。并且还通过将匹配元素的值相加来计算每个组的 。.Where
.Any
smallZonesLoadedAmount
StorageId
Id
storages
TotalCargo
LoadedWeight
smallZonesLoadedAmount
评论