如何使用 linq 而不是 foreach 来获取 List<object>

how to use linq instead of foreach to get an List<object>

        public List<object> Query()
        {
            List<string> availableBillingIncrements = _controller.GetAvailableDropdowns().AvailableBillingIncrement;
            List<object> results = new List<object>();

            var x = availableBillingIncrements
                .Select(i => new List<object> { "Increment", i })
                .ToList()
                .Select(i => new List<object> { i })
                .ToList();

            foreach (string increment in availableBillingIncrements)
            {
                List<object> result = new List<object>();
                result.Add(new List<object> { "Increment", increment });
                results.Add(result);
            }

            return results;
        }

在上面的代码中,x 和 results 是相同的对象,只是 x 是 List> 类型,而 results 是 List。如何摆脱 foreach 循环并使用 x 作为结果?

您需要将 List<object> 转换为 object:

var results = availableBillingIncrements
    .Select(i => new List<object> { "Increment", i })
    .ToList()
    .Select(i => (object) new List<object> { i })
    .ToList();

虽然这可以简化为单个 Select,并且不需要中间 ToList 调用:

var results = availableBillingIncrements
    .Select(i => (object) new List<object> {
        new List<object> { "Increment", i } })
    .ToList();