.net DotNet LINQ:执行xxx.GroupBy(x=>;x.VendorName)后group.key是什么
通常.Key属性设置为什么 在我下面的示例中,密钥似乎为空。至少它不是预期中的供应商名称 我想当我循环时,我可以在项目上获得vendorName,但是为什么不在组级别上,或者如果有,它在哪里.net DotNet LINQ:执行xxx.GroupBy(x=>;x.VendorName)后group.key是什么,.net,linq,key,grouping,.net,Linq,Key,Grouping,通常.Key属性设置为什么 在我下面的示例中,密钥似乎为空。至少它不是预期中的供应商名称 我想当我循环时,我可以在项目上获得vendorName,但是为什么不在组级别上,或者如果有,它在哪里 int poItemsCount = 0; foreach (var item in linqQuery) { poItemsCount++; webPOInfo info = new webPOInfo(item.qVendorName, item.
int poItemsCount = 0;
foreach (var item in linqQuery)
{
poItemsCount++;
webPOInfo info = new webPOInfo(item.qVendorName, item.qSku, item.qTransID, item.qSize, item.qQty);
lstPOInfo.Add(info);
}
//loop through each vendor name group
var linqGroups = lstPOInfo.GroupBy(x => x.VendorName);
循环浏览结果:
foreach (var group in linqGroups)
{
//for each group, we need to create a PO header
Logging.logMessage("Creating a PO for Vendor: " + group.Key, trcProgramName, trcProgGuid, trcCorrGuid, trcKey, "4201", null);
...etc
}
跟踪显示:
为供应商创建采购订单:
分组后必须创建一个新对象
lstPOInfo.GroupBy(x => x.VendorName, (key, webPoInfoCollection) => new { Key = key, objectCollection = webPoInfoCollection });
下面是如何循环组数据
foreach (var groupObj in linqGroups)
{
//for each group, we need to create a PO header
Logging.logMessage("Creating a PO for Vendor: " + groupObj.Key, trcProgramName, trcProgGuid, trcCorrGuid, trcKey, "4201", null);
foreach (var webPo in groupObj.objectCollection)
{
...etc
}
...etc
}
键应该是
VendorName
属性返回的任何内容。如果您循环查看lstPOInfo
并记录每个采购订单的供应商名称,会发生什么情况?几乎某些项目。输入的qVendorName从不为空或null。我可以在明天重新登录工作时进行检查。代码正在生产中,除了Trace语句外,其他代码都在工作。它将采购订单存储到数据库中,每个供应商一个。如果一个web客户从3个供应商订购5件商品,它将为每个供应商创建3个POs。数据库插入从组循环中的另一个子循环获取供应商。是的,确认的VendorName中肯定有一个名称。好的,可能存在一些明显的边缘情况,其中VendorName不存在。我检查了测试和生产中的跟踪历史,group.key正常工作。在测试系统上重新创建是很棘手的。所以如果我理解的话,你是说密钥不在那里,除非我把它放在那里。我不能假设该键是我正在执行GroupBy的变量。不,该键已经存在,这只是检查集合中字段“VendorName”@Kei的解决方案是否工作正常的另一种方法。在上面的第一个灰色框中,左侧是否支持“var linqGroups=”。这就是我尝试并得到的结果:错误CS1579:foreach语句无法对“AnonymousType#1”类型的变量进行操作,因为“AnonymousType#1”不包含“GetEnumerator”的公共定义。好吧,可能存在一些明显的边缘情况,其中VendorName不存在。我检查了测试和生产中的跟踪历史,group.key正常工作。只是很难在测试系统上重新创建。