当前位置: 代码网 > it编程>编程语言>Asp.net > C#将Dictionary转换成List的常见方式

C#将Dictionary转换成List的常见方式

2025年11月14日 Asp.net 我要评论
在 c# 中,将dictionary<tkey, tvalue>转换为list的方式取决于你需要list中存储的内容(键、值、键值对,或自定义类型)。以下是常见的转换方式:1. 转换为包含

在 c# 中,将dictionary<tkey, tvalue>转换为list的方式取决于你需要list中存储的内容(键、值、键值对,或自定义类型)。以下是常见的转换方式:

1. 转换为包含键值对的list<keyvaluepair<tkey, tvalue>>

dictionary<tkey, tvalue>本身实现了ienumerable<keyvaluepair<tkey, tvalue>>接口,可直接通过 linq 的tolist()方法转换为包含所有键值对的list。

示例代码:

using system;
using system.collections.generic;
using system.linq; // 需引用此命名空间以使用tolist()

class program
{
    static void main()
    {
        // 定义一个dictionary
        dictionary<string, int> dict = new dictionary<string, int>
        {
            {"苹果", 5},
            {"香蕉", 3},
            {"橙子", 7}
        };

        // 转换为包含键值对的list
        list<keyvaluepair<string, int>> kvplist = dict.tolist();

        // 遍历结果
        foreach (var item in kvplist)
        {
            console.writeline($"键:{item.key},值:{item.value}");
        }
    }
}

2. 转换为仅包含键的list

通过dictionary的keys属性(返回所有键的集合),再调用tolist()转换为键的list。

示例代码:

// 转换为仅包含键的list
list<string> keyslist = dict.keys.tolist();

// 遍历键
foreach (var key in keyslist)
{
    console.writeline("键:" + key); // 输出:苹果、香蕉、橙子
}

3. 转换为仅包含值的list

通过dictionary的values属性(返回所有值的集合),再调用tolist()转换为值的list。

示例代码:

// 转换为仅包含值的list
list<int> valueslist = dict.values.tolist();

// 遍历值
foreach (var value in valueslist)
{
    console.writeline("值:" + value); // 输出:5、3、7
}

4. 转换为自定义类型的list

如果需要将键和值封装到自定义类中,可通过select投影后再转换为list。

示例代码:

// 定义自定义类
public class fruit
{
    public string name { get; set; } // 对应dictionary的键
    public int count { get; set; }  // 对应dictionary的值
}

// 转换为自定义类型的list
list<fruit> fruitlist = dict.select(kv => new fruit
{
    name = kv.key,
    count = kv.value
}).tolist();

// 遍历自定义类型列表
foreach (var fruit in fruitlist)
{
    console.writeline($"水果:{fruit.name},数量:{fruit.count}");
}

注意事项

需引用system.linq命名空间(using system.linq;),否则tolist()方法无法使用。
转换后的list是原dictionary中元素的副本(浅拷贝),修改list中的元素不会影响原dictionary(但如果是引用类型,修改内部属性会同步)。

以上就是c#将dictionary转换成list的常见方式的详细内容,更多关于c# dictionary转换list的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com