16,553
社区成员
发帖
与我相关
我的任务
分享
Public Class Class2
Private List1 As New List(Of Integer)
Private List2 As New List(Of Integer)
Private Dictionary1 As New Dictionary(Of Integer, List(Of Integer))
Private NextKey1 As Integer = 0
Private NextKey2 As Integer = 1
Private NextKey3 As Integer = 0
Private Nextkey4 As Integer = 0
Private Array1 As String()
Private TreeView1 As TreeView
Public Property _TreeView1() As TreeView
Get
Return TreeView1
End Get
Set(ByVal value As TreeView)
TreeView1 = value
End Set
End Property
Public Sub MySub()
Dim Sum1 As Integer = List1.Sum
ReadAllNode(TreeView1.Nodes)
ReadAllNode1(TreeView1.Nodes)
End Sub
Private Sub ReadAllNode(ByVal Nodes1 As TreeNodeCollection)
Dim Val1 As Integer
Dim Val2 As Integer
Dim Next1 As Integer = 1
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Dim Array2 As String()
For Each S As TreeNode In Nodes1
Str2 = S.Text
Str3 = S.FullPath
' MsgBox(Str3)
Array2 = Str3.Split("\")
Val2 = Val(Array2.Last.Split("(").ElementAt(1))
List2.Add(Val2)
If S.Nodes.Count > 0 Then
ReadAllNode(S.Nodes)
End If
If String.Equals(Str2, Str3) Then
Str1 = Str2.Split("(").ElementAt(0)
TreeView1.Nodes.Item(NextKey1).Text = Str1 & "(" & List1.Sum & ")"
Dictionary1.Add(NextKey2, List2)
List1 = New List(Of Integer)
List2 = New List(Of Integer)
NextKey1 += 1
NextKey2 += 1
Else
Val1 = Val(Str2.Split("(").ElementAt(1))
List1.Add(Val1)
End If
Next
End Sub
Private Sub ReadAllNode1(ByVal Nodes1 As TreeNodeCollection)
Dim Val1 As Integer
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
For Each S As TreeNode In Nodes1
Str2 = S.Text
Str3 = S.FullPath
Array1 = S.FullPath.Split("\")
Val1 = S.Nodes.Count
If String.Equals(Str2, Str3) Then
NextKey3 += 1
Nextkey4 = 1
End If
If Val1 > 0 Then
S.Text = Dictionary1.Item(NextKey3).Skip(Nextkey4 - 1).Sum.ToString
End If
Nextkey4 += 1
If S.Nodes.Count > 0 Then
ReadAllNode1(S.Nodes)
End If
Next
End Sub
End Class
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Cla1 As New Class1
Cla1._TreeView1 = Me.TreeView1
Cla1.MySub()
End Sub
End Class
Public Class Class1
Private List1 As New List(Of Integer)
Private List2 As New List(Of Integer)
Private Dictionary1 As New Dictionary(Of Integer, List(Of Integer))
Private NextKey1 As Integer = 0
Private NextKey2 As Integer = 1
Private NextKey3 As Integer = 0
Private Nextkey4 As Integer = 1
Private Array1 As String()
Private TreeView1 As TreeView
Public Property _TreeView1() As TreeView
Get
Return TreeView1
End Get
Set(ByVal value As TreeView)
TreeView1 = value
End Set
End Property
Public Sub MySub()
Dim Sum1 As Integer = List1.Sum
ReadAllNode(TreeView1.Nodes)
ReadAllNode1(TreeView1.Nodes)
End Sub
Private Sub ReadAllNode(ByVal Nodes1 As TreeNodeCollection)
Dim Val1 As Integer
Dim Val2 As Integer
Dim Next1 As Integer = 1
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Dim Array2 As String()
For Each S As TreeNode In Nodes1
Str2 = S.Text
Str3 = S.FullPath
' MsgBox(Str3)
Array2 = Str3.Split("\")
Val2 = Val(Array2.Last.Split("(").ElementAt(1))
List2.Add(Val2)
If S.Nodes.Count > 0 Then
ReadAllNode(S.Nodes)
End If
If String.Equals(Str2, Str3) Then
Str1 = Str2.Split("(").ElementAt(0)
TreeView1.Nodes.Item(NextKey1).Text = Str1 & "(" & List1.Sum & ")"
Dictionary1.Add(NextKey2, List2)
List1 = New List(Of Integer)
List2 = New List(Of Integer)
NextKey1 += 1
NextKey2 += 1
Else
Val1 = Val(Str2.Split("(").ElementAt(1))
List1.Add(Val1)
End If
Next
End Sub
Private Sub ReadAllNode1(ByVal Nodes1 As TreeNodeCollection)
Dim Val1 As Integer
Dim Str2 As String
Dim Str3 As String
For Each S As TreeNode In Nodes1
Str2 = S.Text
Str3 = S.FullPath
Array1 = S.FullPath.Split("\")
Val1 = S.Nodes.Count
If String.Equals(Str2, Str3) Then
NextKey3 += 1
Nextkey4 = 1
End If
Nextkey4 += 1
If Val1 > 0 Then
S.Text = Dictionary1.Item(NextKey3).Skip(Nextkey4 - 1).Sum.ToString
End If
If S.Nodes.Count > 0 Then
ReadAllNode1(S.Nodes)
End If
Next
End Sub
End Class
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Cla1 As New Class1
Cla1._TreeView1 = Me.TreeView1
Cla1.MySub()
End Sub
End Class
private void button1_Click(object sender, EventArgs e)
{
foreach (TreeNode node in treeView1.Nodes)
foo(node);
}
private void foo(TreeNode node)
{
if (node.Nodes.Count == 0)
{
node.Text = Regex.Match(node.Text, "(?<=Node)\\d+").Value;
}
else
{
foreach (TreeNode node1 in node.Nodes)
foo(node1);
node.Text = (node.Nodes.Cast<TreeNode>().Sum(x => int.Parse(x.Text)) + int.Parse(Regex.Match(node.Text, "(?<=Node)\\d+").Value)).ToString();
}
}