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

C#中如何将Dictionary的值添加到List或Array?问题求助

问题解决建议

问题1:Append()无法向List添加元素

List<T>.Append()是LINQ扩展方法,它不会修改原List实例,而是返回一个包含新增元素的全新IEnumerable<T>序列。你当前代码只是调用了Append但没接收返回值,导致原selected List始终是空的。

正确做法是用List<T>.Add()方法,它会直接修改原List,把元素添加到集合里:

foreach (var result in data)
{
    selected.Add(result.Value); // 替换Append为Add
    // ...
}

问题2:直接输出List对象只会显示类型名

执行Console.WriteLine(selected)时,默认调用List的ToString()方法,该方法只会返回集合的类型全称(也就是你看到的System.Collections.Generic.List1[System.String]`)。要输出List里的元素,需要手动处理:

方式1:遍历输出每个元素

foreach (var item in selected)
{
    Console.WriteLine(item);
}

方式2:用string.Join拼接成字符串输出

Console.WriteLine(string.Join(", ", selected)); // 用逗号分隔元素,可自定义分隔符

完整修改后的代码

public static void Main ()
{
    List<string> selected = new List<string>();
    var data = new Dictionary<string, string>()
    {
        {"A", "a"},
        {"B", "b"},
        {"C", "c"},
    };
    foreach (var result in data)
    {
        selected.Add(result.Value);
        // 输出当前List的所有元素
        Console.WriteLine(string.Join(", ", selected));
    }
}

更简洁的写法(可选)

如果不需要逐个添加的过程,可以直接通过LINQ一次性把Dictionary的值转成List或数组:

// 直接转List
List<string> selected = data.Values.ToList();
// 直接转数组
string[] selectedArray = data.Values.ToArray();

// 输出结果
Console.WriteLine(string.Join(", ", selected));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:25:25