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

如何在C#中从嵌套List获取模型名与对应ModelID的映射结果

解决方案:获取ModelID与ModelName的关联配对

首先明确你的Items类结构(基于描述补充):

public class Items
{
    public string ModelID { get; set; }
    public List<string> ModelNames { get; set; } // 对应你提到的字符串列表类型属性
}

// 示例Models方法
public List<Items> Models()
{
    return new List<Items>
    {
        new Items { ModelID = "model1", ModelNames = new List<string> { "m10", "m11" } },
        new Items { ModelID = "model2", ModelNames = new List<string> { "m10", "m12" } }
    };
}

要生成(model1,m10)这类关联结果,关键是在SelectMany中保留ModelID和ModelName的关联关系,使用SelectMany的重载版本,传入结果选择器来配对两者:

// 第一步:获取ModelID与每个ModelName的配对
var modelPairs = Models()
    .SelectMany(
        item => item.ModelNames, // 遍历每个Items的ModelNames列表
        (item, modelName) => new { item.ModelID, ModelName = modelName } // 将ModelID和单个ModelName配对
    );

// 第二步:格式化输出目标格式
foreach (var pair in modelPairs)
{
    Console.WriteLine($"({pair.ModelID},{pair.ModelName})");
}

如果想直接生成格式化后的字符串列表,可以合并两步:

var formattedResults = Models()
    .SelectMany(item => item.ModelNames, (item, name) => $"({item.ModelID},{name})");

// 输出所有结果
foreach (var result in formattedResults)
{
    Console.WriteLine(result);
}

关键说明

你之前的SelectMany(c => c.ModelName)只提取了子集合的元素,丢失了父元素的ModelID信息。通过使用带结果选择器的SelectMany重载,就能将每个父元素的ModelID与子集合中的每个ModelName一一绑定,从而得到需要的关联配对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 03:22:09