本文整理汇总了C#中IMetadataTokenProvider.Where方法的典型用法代码示例。如果您正苦于以下问题:C# IMetadataTokenProvider.Where方法的具体用法?C# IMetadataTokenProvider.Where怎么用?C# IMetadataTokenProvider.Where使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMetadataTokenProvider
的用法示例。
在下文中一共展示了IMetadataTokenProvider.Where方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BuildTypeNodes
private IEnumerable<ILEditTreeNode> BuildTypeNodes(IMetadataTokenProvider[] members)
{
//Type-node mapping dictionary
var typeMapDic = new Dictionary<TypeDefinition, ILEditTreeNode>();
//Function to get or create a type-node from the dictionary
Func<TypeDefinition, Brush, ILEditTreeNode> GetOrCreate = (x, b) => {
ILEditTreeNode ret;
if (!typeMapDic.TryGetValue(x, out ret))
{
ret = new ILEditTreeNode(x, true) { IsExpanded = true, Foreground = b };
typeMapDic.Add(x, ret);
}
return ret;
};
//Foreach member
foreach (var x in members.Where(m => m is IMemberDefinition))
{
//Checks if this member is a type or not
if (x is TypeDefinition)
{
var type = (TypeDefinition)x;
if (type.IsNested)
{
GetOrCreate(type.DeclaringType, GlobalContainer.NormalNodesBrush)
.Children.Add(new ILEditTreeNode(type, true) { IsExpanded = true, Foreground = GlobalContainer.ModifiedNodesBrush });
}
else
{
GetOrCreate(type, GlobalContainer.ModifiedNodesBrush);
}
}
else
{
//Gets the node type
var typeNode = GetOrCreate(((IMemberDefinition)x).DeclaringType, GlobalContainer.NormalNodesBrush);
//Adds to the type node this member
typeNode.Children.Add(new ILEditTreeNode(x, false) { IsExpanded = true, Foreground = GlobalContainer.ModifiedNodesBrush });
}
}
//Returns and sorts the contents of the type nodes
return typeMapDic.Values;
}