【发布时间】:2014-08-29 18:58:04
【问题描述】:
有没有一种优雅的方式来构建一个IEnumerable<T>
bool TryParse<T>(Input, out T)
和一个类型的输入
Input[,]
基本上我有一个输入的二维数组,并且想在每个输入上调用 TryParse,如果 TryParse<T> 返回 true,我会将“out”中的返回值附加到 IEnumerable<T>。
我可以在 for 循环中轻松做到这一点,但我想要更优雅的东西。这是我目前使用的:
var marketInputColl = new Collection<MarketInput>();
foreach (object o in marketInputs)
{
MarketInput mktInput;
if (ExcelCache.TryGetCache<MarketInput>(o.ToString(), out mktInput))
marketInputColl.Add(mktInput);
}
【问题讨论】:
-
Input是一种类型吗?你尝试了什么? -
有一些“优雅”的方法可以做你想做的事,但它们比简单的
foreach循环更复杂,更难理解。 -
我意识到这不是 100% 的重复,但它是迭代二维数组的一个微不足道的扩展。
-
@Heinzi 是的,但是在泛型上使用加法运算符并不容易
-
Input是一种类型,我可以使用 for 循环,我不知道如何在 LINQ 表达式中 TryParse 的返回值的函数中选择性地添加到 Enum。
标签: c#