IDictionary または ICollection のビジュアライザーを作成しようとしていました
次に、単純なビジュアライザーのように (ダイアログなし。変数をホバーしたときに表示される通常の文字列ビジュアライザーを意味します。下の画像を参照)、カスタム テキストを作成し、コレクションをその型のリストにキャストしたい (IE StringCollection to List (Of String) または List) を作成すると、ビジュアライザーで表示できます。または辞書の場合、キーと値のビジュアライザーをリストに表示します。
実装方法や開始方法についてのアイデアはありますか?
すぐに質問を更新します。
これは私が考えたことです:
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などに似たものを使いたい.
配列では、ビジュアライザーはネストされたすべてのオブジェクトを表示することに注意してください。 これは実際に私が達成したいことです:
.
List を視覚化してみると、プライベート値 _items があることがわかり、その項目を確認できます。コレクションと辞書で同様のことを達成したいと考えています。