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

如何将List<A>的每个元素通过convertAtoB函数转换为List<B>?

你用Foreach的问题在于:List<T>.Foreach()方法仅用于遍历列表执行指定操作,它没有返回值,因此无法直接通过它生成新的List<B>。下面是几种可行的解决方案:

方法1:使用LINQ的Select(最简洁)

先引用System.Linq命名空间,通过Select转换每个元素后,调用ToList()生成目标列表:

List<B> ListB = ListA.Select(a => convertAtoB(a)).ToList();

如果习惯匿名委托写法,也可以写成:

List<B> ListB = ListA.Select(delegate(A a) { return convertAtoB(a); }).ToList();

方法2:使用List原生的ConvertAll方法

List<T>自带的ConvertAll方法专门用于元素类型转换,无需依赖LINQ:

List<B> ListB = ListA.ConvertAll(a => convertAtoB(a));

同样支持匿名委托写法:

List<B> ListB = ListA.ConvertAll(delegate(A a) { return convertAtoB(a); });

方法3:手动循环(直观可控)

如果需要在转换过程中添加额外逻辑(比如异常判断、条件过滤),可以手动遍历并添加元素:

List<B> ListB = new List<B>();
foreach (A a in ListA)
{
    // 可在此添加额外处理逻辑,例如判断元素是否有效
    ListB.Add(convertAtoB(a));
}

内容的提问来源于stack exchange,提问作者Proof of Concept

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:10:01