首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何创建visualizer字符串可视化程序?

如何创建visualizer字符串可视化程序?
EN

Stack Overflow用户
提问于 2009-08-18 14:25:50
回答 2查看 1.2K关注 0票数 1

我试图为IDictionary或ICollection创建一个可视化工具

然后,就像简单的可视化工具(没有对话框;我指的是当悬停变量时出现的常规字符串可视化器,见下面的图像),我想要使我的自定义文本,我想将集合转换成它的类型列表(即,StringCollection列表(字符串)或列表),然后我将能够在可视化器中看到它。或者用于字典显示,列出键和值的可视化器。

有什么想法,如何实施,甚至如何开始?

我很快就会更新我的问题。

这是我想过的

代码语言:javascript
代码运行次数:0
运行
复制
using System.Collections.Specialized;
using System.Collections;

namespace ConsoleApplication2
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.Collections.Specialized.StringCollection collection = new StringCollection();
            collection.AddRange(new string[] { "string1", "string2", "sting3" });
            string[] visualizable = collection.ConvertToVisualizableList();

            Dictionary<string,string> dic = new Dictionary<string,string>
            {
              {"key1","value"},
              {"key2","value"}
            };
            string[,]      visualizable2 = dic.ConvertToVisualizableDictionary();



        }

        static string[] ConvertToVisualizableList(this IList collection)
        {
            lock (collection)
            {
                if (collection == null) return null;
                int length = collection.Count;
                string[] list = new string[length];

                for (int i = 0; i < length; i++)
                {
                    object item = collection[i];
                    if (item != null) list[i] = item.ToString();
                }

                return list.ToArray();
            }
        }

        static string[,] ConvertToVisualizableDictionary(this IDictionary dictionary)
        {
            if (dictionary == null) return null;
            int length = dictionary.Count;
            string[,] list = new string[length, 2];

            int i = 0;
            foreach (object item in dictionary.Keys)
            {
                list[i, 0] = item.ToString();
                object value = dictionary[item];
                if(value!=null) list[i, 1] = value.ToString();
                i++;
            }
            return list;
        }
    }
}

这些是用于数组和多维数组的VS可视化器:

我想为ICollection (或IList)、IDictionary等使用类似的东西。

注意,在数组中,可视化器显示每个嵌套的objcet。,这实际上是我想要实现的

尝试可视化一个列表,您将看到有一个私有值_items,这样您就可以看到它的项。我想在藏书和字典上实现类似的目标。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-18 14:47:12

关于代码项目有许多例子。这是我最有经验的一个:DataSet可视化器

我已经安装和使用它自己,所以我知道它的工作。因为它实际上显示了整个ADO数据集,所以它比您需要的更高级,但是代码应该非常容易修改。

下面还有几个其他的链接可以查看:

项目1

项目2

票数 1
EN

Stack Overflow用户

发布于 2009-08-19 19:11:43

我发现一些已经存在的东西:

http://www.codeproject.com/KB/macros/ListVisualizer.aspx,但它仍然不会显示对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1294230

复制
相关文章

相似问题

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