如何用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
相关产品推荐
相关产品推荐

