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

如何使用LINQ选择对象多属性并生成指定顺序的数字列表?

用LINQ实现按顺序展开对象属性生成数字列表

直接用SelectMany就能搞定,它的作用是把每个元素转换成一个子序列,再将所有子序列合并成一个大序列,正好匹配你要的start1, end1, start2, end2...的顺序。

先假设你的对象类定义如下:

public class MyObj
{
    public int Start { get; set; }
    public int End { get; set; }
}

对应的LINQ实现代码:

// 你的已排序对象列表
List<MyObj> myList = GetSortedObjects();

// 生成目标数字列表
List<int> result = myList.SelectMany(obj => new[] { obj.Start, obj.End }).ToList();

原理说明

SelectMany遍历myList里的每个对象,把每个对象映射成一个包含Start和End的int数组,然后自动将所有这些数组合并成连续的序列,最后转成List<int>就是你需要的结果。

如果需要更直观的写法,也可以用yield return自定义扩展方法,但上面的数组写法是最简洁高效的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 21:14:51