首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dictionay对象的行式迭代

dictionay对象的行式迭代
EN

Stack Overflow用户
提问于 2010-05-07 16:05:49
回答 3查看 100关注 0票数 0

我有一个字典对象,比如:

代码语言:javascript
复制
Dictionary<string, HashSet<int>> dict = new Dictionary<string, HashSet<int>>();
        dict.Add("foo", new HashSet<int>() { 15,12,16,18});
        dict.Add("boo", new HashSet<int>() { 16,47,45,21 });

我必须以这样的方式打印,每次迭代的结果如下所示:

代码语言:javascript
复制
It1: foo    boo  //only the key in a row
It2: 15     16
It3: 16     47

有没有人能帮我做到这一点。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2010-05-07 16:14:07

首先获取key:遍历所有字典键,然后获取值,例如:

代码语言:javascript
复制
foreach(var v in dict.Keys)
{
Console.WriteLine(dict[v]);
}

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-05-07 16:26:32

这里的结果是你的字典,而writer是streamwriter的一个对象

代码语言:javascript
复制
            int keyCount = results.Keys.Count;
            writer.WriteLine("<table border='1'>");
            writer.WriteLine("<tr>");
            for (int i = 0; i < keyCount; i++)
            {
                writer.WriteLine("<th>" + results.Keys.ToArray()[i] + "</th>");
            }
            writer.WriteLine("</tr>");

            int valueCount = results.Values.ToArray()[0].Count;
            for (int j = 0; j < valueCount; j++)
            {
                writer.WriteLine("<tr>");
                for (int i = 0; i < keyCount; i++)
                {
                    writer.WriteLine("<td>" + results.Values.ToArray()[i].ToArray()[j] + "</td>");
                }
                writer.WriteLine("</tr>");
            }
            writer.WriteLine("</table>");
票数 0
EN

Stack Overflow用户

发布于 2010-05-07 17:15:52

您应该使用Tranpose()扩展from here并测试以下代码:

代码语言:javascript
复制
Dictionary<string, HashSet<int>> dict = new Dictionary<string, HashSet<int>>();
dict.Add("foo", new HashSet<int>() { 15, 12, 16, 18 });
dict.Add("boo", new HashSet<int>() { 16, 47, 45, 21 });

var query = dict.Select(entry => entry.Value.Select(value => value.ToString()))
                .Transpose();

foreach (var key in dict.Keys)
{
    Console.Write(String.Format("{0,-5}", key));
}
Console.WriteLine();

foreach (var row in query)
{
    foreach (var item in row)
    {
        Console.Write(String.Format("{0,-5}", item));
    }
    Console.WriteLine();
}
Console.ReadKey();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2787088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档