c# - 如果它包含任何项目,则枚举可枚举的功能方法
问题描述
我只是在寻找替代方案
if (enumerable.Any())
{
// Code to Map to new type.
}
我知道 linq 中的 foreach 方法可以做到这一点,但它返回 void,我需要一些可以将集合传递给新类型的东西。
我试图避免的问题是两次枚举集合并降低圈复杂度。
我想知道 linq 库中是否有任何现有的方法可以允许这样做。
解决方案
Select
似乎是最好的选择,但如果您的映射很复杂和/或没有生成简单的类型,那么您必须在if
. 在这种情况下,您可以手动处理枚举:
var e = enumerable.GetEnumerator();
if (e.MoveNext()) {
// Code to Map to new type.
do {
// map e.Current to new type
} while (e.MoveNext());
}
推荐阅读
- c# - 使用带有大量 Include() 的 EF Core 时如何正确缓存查询结果?
- recurrent-neural-network - 寻找使用哪种模型(RNN或其他东西)的问题?
- azure-web-app-service - WebApp 私有端点 azure vpn
- reactjs - 使用 Papaparse 加载大型 CSV 文件不起作用(仅加载第一个块)
- python - 用正则表达式提取德语单词
- iphone - iPhone 上的数字商品市场
- webpack - Sass with Webpack 中的 FontAwesome 图标不显示
- python - 'OnlineClassSerializer' 对象没有属性 'onlineClassItems_set'
- google-apps-script - 谷歌应用脚本在调试模式下运行,而不是在运行模式下
- numpy - 使用 TensorFlow 对 numpy 数组进行混洗的不一致行为