本文整理汇总了C#中Dynamo.Nodes.List.FindIndex方法的典型用法代码示例。如果您正苦于以下问题:C# List.FindIndex方法的具体用法?C# List.FindIndex怎么用?C# List.FindIndex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dynamo.Nodes.List
的用法示例。
在下文中一共展示了List.FindIndex方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Collapse
//.........这里部分代码省略.........
//if (curriedNodeArgs.Any(x => x.OuterNode == outputReceiverNode))
// continue;
outportList.Add(Tuple.Create(outputSenderNode, outputSenderData));
//Create Symbol Node
var node = new Output
{
Symbol = outputSenderNode.OutPortData[outputSenderData].NickName,
X = rightMost + 75 - leftShift
};
node.Y = i*(50 + node.Height);
node.SetNickNameFromAttribute();
newNodes.Add(node);
ConnectorModel.Make(outputSenderNode, node, outputSenderData, 0);
i++;
}
}
//Connect outputs to new node
outConnectors.AddRange(
from output in outputs
let outputSenderNode = output.Item1
let outputSenderData = output.Item2
let outputReceiverData = output.Item3.Item1
let outputReceiverNode = output.Item3.Item2
select
Tuple.Create(
outputReceiverNode,
outportList.FindIndex(
x => x.Item1 == outputSenderNode && x.Item2 == outputSenderData),
outputReceiverData));
}
else
{
foreach (var hanging in
selectedNodeSet.SelectMany(
node =>
Enumerable.Range(0, node.OutPortData.Count)
.Where(port => !node.HasOutput(port))
.Select(port => new { node, port })).Distinct())
{
//Create Symbol Node
var node = new Output
{
Symbol = hanging.node.OutPortData[hanging.port].NickName,
X = rightMost + 75 - leftShift
};
node.Y = i*(50 + node.Height);
node.SetNickNameFromAttribute();
newNodes.Add(node);
ConnectorModel.Make(hanging.node, node, hanging.port, 0);
i++;
}
}
#endregion
var newId = Guid.NewGuid();
newWorkspace = new CustomNodeWorkspaceModel(
示例2: Collapse
//.........这里部分代码省略.........
node.Y = i*(50 + node.Height);
newNodeWorkspace.AddConnection(
outputSenderNode,
node,
outputSenderData,
0);
i++;
}
}
//Connect outputs to new node
foreach (var output in outputs)
{
//Node to be connected to in CurrentWorkspace
NodeModel outputSenderNode = output.Item1;
//Port to be connected to on outPutNode_outer
int outputSenderData = output.Item2;
int outputReceiverData = output.Item3.Item1;
NodeModel outputReceiverNode = output.Item3.Item2;
var curriedNode =
curriedNodeArgs.FirstOrDefault(x => x.OuterNode == outputReceiverNode);
if (curriedNode == null)
{
// we create the connectors in the current space later
outConnectors.Add(
Tuple.Create(
outputReceiverNode,
outportList.FindIndex(
x =>
x.Item1 == outputSenderNode
&& x.Item2 == outputSenderData),
outputReceiverData));
}
else
{
int targetPort =
curriedNode.Inputs.First(
x => x.InnerNodeInputSender == outputSenderNode)
.OuterNodeInPortData;
int targetPortIndex =
curriedNode.OuterNodePortDataList.IndexOf(targetPort);
//Connect it (new dynConnector)
newNodeWorkspace.AddConnection(
outputSenderNode,
curriedNode.InnerNode,
outputSenderData,
targetPortIndex + 1);
}
}
}
else
{
foreach (var hanging in
selectedNodeSet.SelectMany(
node =>
Enumerable.Range(0, node.OutPortData.Count)
.Where(port => !node.HasOutput(port))
示例3: Collapse
//.........这里部分代码省略.........
dynSettings.Bench.WorkBench.UpdateLayout();
newNodeWorkspace.Connectors.Add(new dynConnector(
outputSenderNode.NodeUI,
nodeUI,
outputSenderData,
0,
0,
false));
i++;
}
}
//Connect outputs to new node
foreach (var output in outputs)
{
//Node to be connected to in CurrentSpace
dynNode outputSenderNode = output.Item1;
//Port to be connected to on outPutNode_outer
int outputSenderData = output.Item2;
int outputReceiverData = output.Item3.Item1;
dynNode outputReceiverNode = output.Item3.Item2;
var curriedNode = curriedNodeArgs.FirstOrDefault(
x => x.OuterNode == outputReceiverNode);
if (curriedNode == null)
{
// we create the connectors in the current space later
outConnectors.Add(new Tuple<dynNodeUI, int, int>(outputReceiverNode.NodeUI,
outportList.FindIndex(x => x.Item1 == outputSenderNode && x.Item2 == outputSenderData),
outputReceiverData));
}
else
{
int targetPort = curriedNode.Inputs
.First(
x => x.InnerNodeInputSender == outputSenderNode)
.OuterNodeInPortData;
int targetPortIndex = curriedNode.OuterNodePortDataList.IndexOf(targetPort);
//Connect it (new dynConnector)
newNodeWorkspace.Connectors.Add(new dynConnector(
outputSenderNode.NodeUI,
curriedNode.InnerNode.NodeUI,
outputSenderData,
targetPortIndex + 1,
0));
}
}
#endregion
#region Make new workspace invisible
//Step 4: make nodes invisible
// and update positions
foreach (dynNodeUI node in newNodeWorkspace.Nodes.Select(x => x.NodeUI))
node.Visibility = Visibility.Hidden;
foreach (dynConnector connector in newNodeWorkspace.Connectors)
connector.Visible = false;
示例4: Collapse
//.........这里部分代码省略.........
outputSenderData,
0,
PortType.INPUT);
if (conn != null)
newNodeWorkspace.Connectors.Add(conn);
i++;
}
}
//Connect outputs to new node
foreach (var output in outputs)
{
//Node to be connected to in CurrentWorkspace
NodeModel outputSenderNode = output.Item1;
//Port to be connected to on outPutNode_outer
int outputSenderData = output.Item2;
int outputReceiverData = output.Item3.Item1;
NodeModel outputReceiverNode = output.Item3.Item2;
var curriedNode = curriedNodeArgs.FirstOrDefault(
x => x.OuterNode == outputReceiverNode);
if (curriedNode == null)
{
// we create the connectors in the current space later
//MVVM : replaced multiple dynNodeView refrences with dynNode
outConnectors.Add(
Tuple.Create(
outputReceiverNode,
outportList.FindIndex(
x => x.Item1 == outputSenderNode && x.Item2 == outputSenderData),
outputReceiverData));
}
else
{
int targetPort = curriedNode.Inputs
.First(
x => x.InnerNodeInputSender == outputSenderNode)
.OuterNodeInPortData;
int targetPortIndex = curriedNode.OuterNodePortDataList.IndexOf(targetPort);
//Connect it (new dynConnector)
var conn = ConnectorModel.Make(
outputSenderNode,
curriedNode.InnerNode,
outputSenderData,
targetPortIndex + 1,
PortType.INPUT);
if (conn != null)
newNodeWorkspace.Connectors.Add(conn);
}
}
#endregion
// save and load the definition from file
newNodeDefinition.SyncWithWorkspace(true, true);
dynSettings.Controller.DynamoModel.Workspaces.Add(newNodeWorkspace);
示例5: NodeFromSelection
//.........这里部分代码省略.........
NodeNameAttribute elNameAttrib = node.GetType().GetCustomAttributes(typeof(NodeNameAttribute), false)[0] as NodeNameAttribute;
if (elNameAttrib != null)
{
nodeUI.NickName = elNameAttrib.Name;
}
nodeUI.GUID = Guid.NewGuid();
//store the element in the elements list
newNodeWorkspace.Nodes.Add(node);
node.WorkSpace = newNodeWorkspace;
node.DisableReporting();
Bench.WorkBench.Children.Add(nodeUI);
//Place it in an appropriate spot
Canvas.SetLeft(nodeUI, rightMost + 75 - leftShift);
Canvas.SetTop(nodeUI, i * (50 + node.NodeUI.Height));
Bench.WorkBench.UpdateLayout();
newNodeWorkspace.Connectors.Add(new dynConnector(
outputSenderNode.NodeUI,
nodeUI,
outputSenderData,
0,
0,
false));
i++;
}
}
//Connect outputs to new node
foreach (var output in outputs)
{
//Node to be connected to in CurrentSpace
var outputSenderNode = output.Item1;
//Port to be connected to on outPutNode_outer
var outputSenderData = output.Item2;
var outputReceiverData = output.Item3.Item1;
var outputReceiverNode = output.Item3.Item2;
var curriedNode = curriedNodeArgs.FirstOrDefault(
x => x.OuterNode == outputReceiverNode);
if (curriedNode == null)
{
CurrentSpace.Connectors.Add(
new dynConnector(
collapsedNode.NodeUI,
outputReceiverNode.NodeUI,
outportList.FindIndex(x => x.Item1 == outputSenderNode && x.Item2 == outputSenderData),
outputReceiverData,
0,
true));
}
else
{
var targetPort = curriedNode.Inputs
.First(
x => x.InnerNodeInputSender == outputSenderNode)
.OuterNodeInPortData;
var targetPortIndex = curriedNode.OuterNodePortDataList.IndexOf(targetPort);
//Connect it (new dynConnector)
newNodeWorkspace.Connectors.Add(new dynConnector(
outputSenderNode.NodeUI,
curriedNode.InnerNode.NodeUI,
outputSenderData,
targetPortIndex + 1,
0));
}
}
#endregion
#region Make new workspace invisible
//Step 4: make nodes invisible
// and update positions
foreach (var node in newNodeWorkspace.Nodes.Select(x => x.NodeUI))
node.Visibility = Visibility.Hidden;
foreach (var connector in newNodeWorkspace.Connectors)
connector.Visible = false;
#endregion
newNodeWorkspace.Nodes.ForEach(x => { x.EnableReporting(); x.NodeUI.UpdateConnections(); });
collapsedNode.EnableReporting();
collapsedNode.NodeUI.UpdateConnections();
CurrentSpace.EnableReporting();
SaveFunction(newNodeWorkspace, true);
}