C# 如果SingleOrDefaultValue抛出InvalidOperationException,如何从中获取值
我面临一些问题。我需要记录哪个Id引发了InvalidOperationException,例如,campaignIDsRange集合包含两个Dublicate(12,12),我如何记录这个数字C# 如果SingleOrDefaultValue抛出InvalidOperationException,如何从中获取值,c#,C#,我面临一些问题。我需要记录哪个Id引发了InvalidOperationException,例如,campaignIDsRange集合包含两个Dublicate(12,12),我如何记录这个数字 try { dashboardItems.AddRange( campaignIdsRange.Select(
try
{
dashboardItems.AddRange(
campaignIdsRange.Select(
campaignId => dashboardItemsRange.SingleOrDefault(x => x.campaign_id == campaignId));
}
catch (InvalidOperationException e)
{
_logger.Warning(, e);
Console.WriteLine(e);
throw;
}
可以将try块放在Select方法中
dashboardItems.AddRange(
campaignIdsRange
.Select(campaignId =>
{
try
{
return dashboardItemsRange.SingleOrDefault(x => x.campaign_id == campaignId);
}
catch (InvalidOperationException e)
{
_logger.Warning(, e);
Console.WriteLine(e);
throw;
}
});
可以将try块放在Select方法中
dashboardItems.AddRange(
campaignIdsRange
.Select(campaignId =>
{
try
{
return dashboardItemsRange.SingleOrDefault(x => x.campaign_id == campaignId);
}
catch (InvalidOperationException e)
{
_logger.Warning(, e);
Console.WriteLine(e);
throw;
}
});
使用
。其中
,查看返回的结果数量。您必须在单独的步骤中进行验证var dups=dashboardItemsRange.GroupBy(x=>x.campaign_id==campaign id)。其中(g=>g.Count()>1)。选择(y=>y.campaign_id)。ToList()
然后查看列表是否为空。@MatthewWatson谢谢,中间步骤看起来如何使用。在中,查看返回的结果数。您必须在单独的步骤中进行验证var dups=dashboardItemsRange.GroupBy(x=>x.campaign_id==campaign id)。其中(g=>g.Count()>1)。选择(y=>y.campaign_id)。ToList()代码>然后查看列表是否为空。@MatthewWatson谢谢,中间步骤看起来如何“需要记录哪个Id引发InvalidOperationException”“需要记录哪个Id引发InvalidOperationException”