You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Dictionary<int, float[]>各数组提取第n项?Linq替代foreach方案

用LINQ简化提取逻辑

你可以直接通过LINQ的Select方法配合ToArray来实现,完全不用嵌套循环:

情况1:按指定的keys集合顺序提取

如果需要严格遵循你代码里keys集合的顺序,直接对keys做映射:

float[] rowData = keys.Select(key => rawData[key][row]).ToArray();

情况2:直接使用字典中键的顺序提取

如果不需要额外指定keys,直接用字典的Values集合(注意:.NET Core 3.0+及.NET 5+中Dictionary会保留插入顺序,旧版本则不保证顺序):

float[] rowData = rawData.Values.Select(arr => arr[row]).ToArray();

补充说明

  • 这两种写法都完全替代了原代码里的foreach循环,逻辑更简洁直观
  • 要确保所有float[]的长度都大于row,避免索引越界异常

内容的提问来源于stack exchange,提问作者Betty Crokker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:04:54