【发布时间】:2021-11-20 12:36:46
【问题描述】:
我正在实例化一个List,派生自ObservableCollection:
var paidTrips = PaidTrips
.GroupBy(p => new {p.LicenseHolderID})
.ToList();
通过foreach 循环,我可以访问LicenseHolderID 中的各种不同值。
foreach (var licenseHolder in paidTrips) {
// accessing the string value of LicenseHolderID
// but no access to the other items
}
我需要什么帮助:
我如何才能访问paidTrips 中与LicenseHolderID 相关的其他项目? (为什么:我正在创建发票,每个 LicenseHolderID 一张,并且我正在使用来自所有其他集合属性的数据构建发票)。
为了提供一些背景信息,这是我正在使用的完整集合:
PaidTrips.Add(new PaidTrip {
LicenseHolderID = dr[0].ToString(),
VehicleID = dr[1].ToString(),
Year = dr[2].ToString(),
Month = dr[3].ToString(),
Payment = (decimal)dr[4],
PaymentNet = (decimal)dr[5],
OrderFee = (decimal)dr[6],
PaymentFee = (decimal)dr[7],
TripVATcode = (decimal)dr[8],
LicenseHolderInvoiceID = dr[9].ToString(),
TripFeeNet = (decimal)dr[10],
TripFeeVATcode = (decimal)dr[11],
RidelRegionInvoiceID = dr[12].ToString(),
});
【问题讨论】:
-
不太清楚您要达到的目标。 “获得对该集合中其他项目的访问权限”是什么意思?您指的是哪个系列?
-
供参考 C# 中的
.GroupBy()返回一个对象,该对象按键对项目列表进行分组。因此,例如,如果您想访问特定licenseHolderID的所有“PaidTrip”项目,您可以选择paidTrips.Where(w => w.Key == licenseHolderID),或者不进行分组并使用PaidTrips.Where(w => w.licenseHolderID == licenseHolderID)
标签: c# list foreach ienumerable observablecollection