我有一个如下的LINQ查询:
m_FOO = rawcollection.Select(p=> p.Split(' ')).Select(p =>
{
int thing = 0;
try
{
thing = CalculationThatCanFail(p[1]);
}
catch{}
return new { Test = p[0], FooThing = thing};
})
.GroupBy(p => p.Test)
.ToDictionary(p => p.Key, s => s.Select(q => q.FooThing).ToList());
因此,CalculationThatCanFail有时会抛出异常。我不想在其中放入null,然后稍后再使用另一个Where语句过滤掉它,而垃圾值同样不可接受。有人知道如何干净地处理这个问题吗?谢谢。
编辑:双重选择语句有很好的理由。此示例已经为简洁而编辑。
ForEach()
扩展方法就是LINQ可以做的唯一一件事情,但即使这样,你最终仍然需要手动构建某种类型的集合/可枚举对象,而不是让LINQ为你构建它。如果我可以问一下,您对“Where”子句有何反对意见? - devuxer