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

如何用LINQ简化C#中List<IdStringPair>的填充代码?

优化C#列表填充代码:移除临时变量与foreach循环

你可以直接通过LINQ链式调用完成整个转换,不需要临时变量和foreach循环,代码更简洁高效:

public class IdStringPair
{
    public Guid Id { get; set; }
    public string Text { get; set; }
}

public void CreateList()
{
    using var _context = GetTempContext();
    var fullList = _context.Categories
        .OrderBy(o => o.Category)
        .Select(x => new IdStringPair 
        { 
            Id = (Guid)x.Id, 
            Text = x.Category 
        })
        .ToList();
}

关键优化点:

  • 直接映射目标类型:在Select中直接创建IdStringPair实例,避免了匿名类型临时列表的创建与额外内存占用
  • 链式调用简化流程:将排序、类型转换、列表生成通过LINQ链式调用完成,一步得到最终的List<IdStringPair>
  • 去掉冗余循环:无需手动foreach遍历添加元素,ToList()会直接生成目标列表

注意:如果x.Id本身就是Guid类型,可以去掉(Guid)强制转换,让代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:30:53